package gov.samhsa.consent2share.service.consentexport; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.mockito.Matchers.anyLong; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import gov.samhsa.consent.ConsentDto; import gov.samhsa.consent2share.domain.consent.Consent; import gov.samhsa.consent2share.domain.consent.ConsentRepository; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class ConsentDtoFactoryImplTest { @Mock ConsentRepository consentRepository; @Mock ConsentExportMapper consentExportMapper; @InjectMocks ConsentDtoFactoryImpl sut; @Test public void testCreateConsentDto_Repository_Is_Called() { // Arrange long consentId = 1; Consent consent = mock(Consent.class); when(consentRepository.findOne(anyLong())).thenReturn(consent); ConsentDto consentDto = mock(ConsentDto.class); when(consentExportMapper.map(consent)).thenReturn(consentDto); // Act sut.createConsentDto(consentId); // Assert verify(consentRepository).findOne(consentId); } @Test public void testCreateConsentDto_Returns_Successfully() { // Arrange long consentId = 1; Consent consent = mock(Consent.class); when(consentRepository.findOne(anyLong())).thenReturn(consent); ConsentDto consentDtoMock = mock(ConsentDto.class); when(consentExportMapper.map(consent)).thenReturn(consentDtoMock); // Act ConsentDto consentDto = sut.createConsentDto(consentId); // Assert assertEquals(consentDtoMock, consentDto); } @Test public void testCreateConsentDto_ObjectReturns_Successfully() { // Arrange Consent consent = mock(Consent.class); ConsentDto consentDtoMock = mock(ConsentDto.class); when(consentExportMapper.map(consent)).thenReturn(consentDtoMock); // Act ConsentDto consentDto = sut.createConsentDto(consent); // Assert assertEquals(consentDtoMock, consentDto); } @Test public void testCreateConsentDto_ConsentReturns_Successfully() { // Arrange ConsentDto consentDtoMock = mock(ConsentDto.class); Consent consent = new Consent(); when(consentExportMapper.map(consent)).thenReturn(consentDtoMock); // Act ConsentDto consentDto = sut.createConsentDto(consent); // Assert assertEquals(consentDtoMock, consentDto); } @Test public void testCreateConsentDto_Loong_Returns_Successfully() { // Arrange Long consentId = new Long(1); Consent consent = mock(Consent.class); when(consentRepository.findOne(anyLong())).thenReturn(consent); ConsentDto consentDtoMock = mock(ConsentDto.class); when(consentExportMapper.map(consent)).thenReturn(consentDtoMock); // Act ConsentDto consentDto = sut.createConsentDto(consentId); // Assert assertEquals(consentDtoMock, consentDto); } @Test public void testCreateConsentDto_Null_Returns_Successfully() { // Arrange Long consentId = null; // Act ConsentDto consentDto = sut.createConsentDto(consentId); // Assert assertNull(consentDto); } }