Package com.sparc.knappsack.components.validators

Source Code of com.sparc.knappsack.components.validators.GroupValidatorTest

package com.sparc.knappsack.components.validators;

import com.sparc.knappsack.components.entities.Group;
import com.sparc.knappsack.components.entities.Organization;
import com.sparc.knappsack.components.entities.User;
import com.sparc.knappsack.components.services.GroupService;
import com.sparc.knappsack.components.services.UserService;
import com.sparc.knappsack.forms.GroupForm;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.Errors;

import static junit.framework.Assert.*;

@RunWith(MockitoJUnitRunner.class)
public class GroupValidatorTest {
    @Mock
    private GroupService mockGroupService;

    @Mock
    private UserService mockUserService;

    @InjectMocks
    private GroupValidator validator = new GroupValidator();

    private Errors errors;
    private GroupForm groupForm;

    @Before
    public void setup() {
        groupForm = new GroupForm();
        errors = new BeanPropertyBindingResult(groupForm, "groupForm");
    }

    @Test
    public void testValidatorSupportsClass() {
        assertTrue(validator.supports(groupForm.getClass()));
    }

    @Test
    public void testValidatorNotSupportsClass() {
        assertFalse(validator.supports(String.class));
    }

    @Test
    public void testValid() {
        groupForm.setName("name");

        User user = new User();
        Organization organization = new Organization();
        organization.setId(1L);
        user.setActiveOrganization(organization);

        Mockito.when(mockUserService.getUserFromSecurityContext()).thenReturn(user);
        Mockito.when(mockGroupService.get(groupForm.getName(), user.getActiveOrganization().getId())).thenReturn(null);

        validator.validate(groupForm, errors);

        assertFalse(errors.hasErrors());
    }

    @Test
    public void testEmptyName() {
        validator.validate(groupForm, errors);

        assertTrue(errors.hasErrors());
        Assert.assertEquals(errors.getErrorCount(), 1);
        assertNotNull(errors.getFieldError("name"));

        setup();

        groupForm.setName("");

        validator.validate(groupForm, errors);

        assertTrue(errors.hasErrors());
        Assert.assertEquals(errors.getErrorCount(), 1);
        assertNotNull(errors.getFieldError("name"));
    }

    @Test
    public void testGroupNameAlreadyExists() {
        groupForm.setName("name");

        User user = new User();
        Organization organization = new Organization();
        organization.setId(1L);
        user.setActiveOrganization(organization);

        Mockito.when(mockUserService.getUserFromSecurityContext()).thenReturn(user);
        Mockito.when(mockGroupService.get(groupForm.getName(), user.getActiveOrganization().getId())).thenReturn(new Group());

        validator.validate(groupForm, errors);

        assertTrue(errors.hasErrors());
        Assert.assertEquals(errors.getErrorCount(), 1);
        assertNotNull(errors.getFieldError("name"));
    }
}
TOP

Related Classes of com.sparc.knappsack.components.validators.GroupValidatorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.