package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.domain;
import org.junit.Test;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.Expert;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.ValidatorDiseaseGroup;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
* Tests for JsonExpertDetails.
* Copyright (c) 2014 University of Oxford
*/
public class JsonExpertDetailsTest {
@Test
public void constructorBindsFieldsCorrectly() {
// Arrange
Expert mockExpert = mock(Expert.class);
when(mockExpert.getName()).thenReturn("expected name");
when(mockExpert.getJobTitle()).thenReturn("expected job");
when(mockExpert.getInstitution()).thenReturn("expected institution");
when(mockExpert.getVisibilityRequested()).thenReturn(true);
when(mockExpert.getValidatorDiseaseGroups()).thenReturn(Arrays.asList(
new ValidatorDiseaseGroup(1, "foo"),
new ValidatorDiseaseGroup(2, "foo2")
));
// Act
JsonExpertDetails result = new JsonExpertDetails(mockExpert);
// Assert
assertThat(result.getName()).isEqualTo(mockExpert.getName());
assertThat(result.getJobTitle()).isEqualTo(mockExpert.getJobTitle());
assertThat(result.getInstitution()).isEqualTo(mockExpert.getInstitution());
assertThat(result.getVisibilityRequested()).isEqualTo(mockExpert.getVisibilityRequested());
assertThat(result.getDiseaseInterests()).containsOnly(1, 2);
}
}