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.OrganizationalProvider; import gov.samhsa.consent2share.domain.provider.OrganizationalProviderRepository; import gov.samhsa.consent2share.service.dto.OrganizationalProviderDto; 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 OrganizationalProviderServiceImplTest { @Mock PatientRepository patientRepository; @Mock ModelMapper modelMapper; @Mock OrganizationalProviderRepository organizationalProviderRepository; @InjectMocks OrganizationalProviderServiceImpl organizationalProviderService; @Before public void before() { OrganizationalProviderDto organizationalProviderDto = mock(OrganizationalProviderDto.class); Patient patient = mock(Patient.class); when(organizationalProviderDto.getUsername()) .thenReturn("albert.smith"); when(patientRepository.findByUsername(anyString())).thenReturn(patient); } @Test public void testCountAllOrganizationalProviders() { organizationalProviderService.countAllOrganizationalProviders(); verify(organizationalProviderRepository).count(); } @Test public void testDeleteOrganizationalProvider() { organizationalProviderService .deleteOrganizationalProvider(mock(OrganizationalProvider.class)); verify(organizationalProviderRepository).delete( any(OrganizationalProvider.class)); } @Test public void testDeleteOrganizationalProviderDto() { OrganizationalProviderDto organizationalProviderDto = mock(OrganizationalProviderDto.class); organizationalProviderService .deleteOrganizationalProviderDto(mock(OrganizationalProviderDto.class)); verify(patientRepository).save(any(Patient.class)); } @Test public void testDeleteOrganizationalProviderByPatientId() { OrganizationalProviderDto organizationalProviderDto = mock(OrganizationalProviderDto.class); when(organizationalProviderDto.getPatientId()).thenReturn("11"); Patient patient = mock(Patient.class); when(patientRepository.findOne(anyLong())).thenReturn(patient); organizationalProviderService .deleteOrganizationalProviderDto(mock(OrganizationalProviderDto.class)); verify(patientRepository).save(any(Patient.class)); } @Test public void testFindOrganizationalProvider() { organizationalProviderService.findOrganizationalProvider(anyLong()); verify(organizationalProviderRepository).findOne(anyLong()); } @Test public void testFindOrganizationalProviderByNpi() { organizationalProviderService .findOrganizationalProviderByNpi(anyString()); verify(organizationalProviderRepository).findByNpi(anyString()); } @Test public void testFindOrganizationalProviderDto() { organizationalProviderService.findOrganizationalProviderDto(anyLong()); verify(organizationalProviderRepository).findOne(anyLong()); verify(modelMapper).map(any(OrganizationalProvider.class), eq(OrganizationalProviderDto.class)); } @Test public void testFindAllOrganizationalProviders() { organizationalProviderService.findAllOrganizationalProviders(); verify(organizationalProviderRepository).findAll(); } @Test public void testSaveOrganizationalProvider() { organizationalProviderService .saveOrganizationalProvider(mock(OrganizationalProvider.class)); verify(organizationalProviderRepository).save( any(OrganizationalProvider.class)); } @Test public void testUpdateOrganizationalProviderOrganizationalProvider() { organizationalProviderService .updateOrganizationalProvider(mock(OrganizationalProvider.class)); verify(organizationalProviderRepository).save( any(OrganizationalProvider.class)); } @Test public void testUpdateOrganizationalProviderOrganizationalProviderDto() { organizationalProviderService .updateOrganizationalProvider(mock(OrganizationalProviderDto.class)); verify(patientRepository).save(any(Patient.class)); } }