package gov.samhsa.consent2share.service.provider; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import gov.samhsa.consent2share.domain.patient.Patient; import gov.samhsa.consent2share.domain.patient.PatientRepository; import gov.samhsa.consent2share.domain.provider.IndividualProvider; import gov.samhsa.consent2share.domain.provider.IndividualProviderRepository; import gov.samhsa.consent2share.service.dto.IndividualProviderDto; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.modelmapper.ModelMapper; @RunWith(MockitoJUnitRunner.class) public class IndividualProviderServiceImplTest { @Mock IndividualProviderRepository individualProviderRepository; @Mock ModelMapper modelMapper; @Mock PatientRepository patientRepository; @InjectMocks IndividualProviderServiceImpl individualProviderService; @Before public void before() { IndividualProviderDto individualProviderDto = mock(IndividualProviderDto.class); Patient patient = mock(Patient.class); when(individualProviderDto.getUsername()).thenReturn("albert.smith"); when(patientRepository.findByUsername(anyString())).thenReturn(patient); } @Test public void testCountAllIndividualProviders() { individualProviderService.countAllIndividualProviders(); verify(individualProviderRepository).count(); } @Test public void testUpdateIndividualProvider() { individualProviderService .updateIndividualProvider(mock(IndividualProvider.class)); verify(individualProviderRepository) .save(any(IndividualProvider.class)); } @Test public void testUpdateIndividualProviderDto() { IndividualProviderDto individualProviderDto = mock(IndividualProviderDto.class); individualProviderService .updateIndividualProvider(individualProviderDto); verify(patientRepository).save(any(Patient.class)); } @Test public void testFindIndividualProviderByNpi() { individualProviderService.findIndividualProviderByNpi(anyString()); verify(individualProviderRepository).findByNpi(anyString()); } @Test public void testDeleteIndividualProvider() { individualProviderService .deleteIndividualProvider(mock(IndividualProvider.class)); verify(individualProviderRepository).delete( any(IndividualProvider.class)); } @Test public void testDeleteIndividualProviderDto() { IndividualProviderDto individualProviderDto = mock(IndividualProviderDto.class); individualProviderService .deleteIndividualProviderDto(mock(IndividualProviderDto.class)); verify(patientRepository).save(any(Patient.class)); } @Test public void testDeleteIndividualProviderByPatientId() { IndividualProviderDto individualProviderDto = mock(IndividualProviderDto.class); when(individualProviderDto.getPatientId()).thenReturn("11"); Patient patient = mock(Patient.class); when(patientRepository.findOne(anyLong())).thenReturn(patient); individualProviderService .deleteIndividualProviderDto(individualProviderDto); verify(patientRepository).save(any(Patient.class)); } @Test public void testFindIndividualProvider() { individualProviderService.findIndividualProvider(anyLong()); verify(individualProviderRepository).findOne(anyLong()); } @Test public void testFindAllIndividualProviders() { individualProviderService.findAllIndividualProviders(); verify(individualProviderRepository).findAll(); } @Test public void testSaveIndividualProvider() { individualProviderService .saveIndividualProvider(mock(IndividualProvider.class)); verify(individualProviderRepository) .save(any(IndividualProvider.class)); } @Test public void testFindAllIndividualProvidersDto() { individualProviderService.findAllIndividualProvidersDto(); verify(individualProviderRepository).findAll(); } @Test public void testFindIndividualProviderDto() { individualProviderService.findIndividualProviderDto(anyLong()); verify(individualProviderRepository).findOne(anyLong()); verify(modelMapper).map(any(IndividualProvider.class), eq(IndividualProviderDto.class)); } }