package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.web.admin.experts; import org.junit.Test; import uk.ac.ox.zoo.seeg.abraid.mp.publicsite.domain.JsonExpertFull; import uk.ac.ox.zoo.seeg.abraid.mp.publicsite.validator.ExpertValidationRulesChecker; import static org.mockito.Matchers.anyListOf; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.*; /** * Tests for AdminExpertsControllerValidator. * Copyright (c) 2014 University of Oxford */ public class AdminExpertsControllerValidatorTest { @Test public void validateChecksId() throws Exception { // Arrange ExpertValidationRulesChecker checker = mock(ExpertValidationRulesChecker.class); AdminExpertsControllerValidator target = new AdminExpertsControllerValidator(checker); JsonExpertFull expert = mockExpert(); when(expert.getId()).thenReturn(123); // Act target.validate(expert); // Assert verify(checker).checkId(eq(123), anyListOf(String.class)); } @Test public void validateChecksVisibilityApproved() throws Exception { // Arrange ExpertValidationRulesChecker checker = mock(ExpertValidationRulesChecker.class); AdminExpertsControllerValidator target = new AdminExpertsControllerValidator(checker); JsonExpertFull expert = mockExpert(); when(expert.getVisibilityApproved()).thenReturn(false); // Act target.validate(expert); // Assert verify(checker).checkVisibilityApproved(eq(false), anyListOf(String.class)); } @Test public void validateChecksWeighting() throws Exception { // Arrange ExpertValidationRulesChecker checker = mock(ExpertValidationRulesChecker.class); AdminExpertsControllerValidator target = new AdminExpertsControllerValidator(checker); JsonExpertFull expert = mockExpert(); when(expert.getWeighting()).thenReturn(123.321); // Act target.validate(expert); // Assert verify(checker).checkWeighting(eq(123.321), anyListOf(String.class)); } @Test public void validateChecksIsAdministrator() throws Exception { // Arrange ExpertValidationRulesChecker checker = mock(ExpertValidationRulesChecker.class); AdminExpertsControllerValidator target = new AdminExpertsControllerValidator(checker); JsonExpertFull expert = mockExpert(); when(expert.isAdministrator()).thenReturn(false); // Act target.validate(expert); // Assert verify(checker).checkIsAdministrator(eq(false), anyListOf(String.class)); } @Test public void validateChecksIsSeegMember() throws Exception { // Arrange ExpertValidationRulesChecker checker = mock(ExpertValidationRulesChecker.class); AdminExpertsControllerValidator target = new AdminExpertsControllerValidator(checker); JsonExpertFull expert = mockExpert(); when(expert.isSEEGMember()).thenReturn(false); // Act target.validate(expert); // Assert verify(checker).checkIsSeegMember(eq(false), anyListOf(String.class)); } private static JsonExpertFull mockExpert() { JsonExpertFull result = mock(JsonExpertFull.class); when(result.getId()).thenReturn(7); when(result.getVisibilityApproved()).thenReturn(true); when(result.getWeighting()).thenReturn(9.1); when(result.isAdministrator()).thenReturn(true); when(result.isSEEGMember()).thenReturn(true); return result; } }