package gov.samhsa.consent2share.service.valueset; import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyLong; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import gov.samhsa.consent2share.domain.valueset.CodeSystem; import gov.samhsa.consent2share.domain.valueset.CodeSystemRepository; import gov.samhsa.consent2share.service.dto.CodeSystemDto; import java.util.ArrayList; import java.util.List; import org.junit.Assert; 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 CodeSystemServiceImplTest { @Mock CodeSystemRepository codeSystemRepository; @Mock ValueSetMgmtHelper valueSetMgmtHelper;; @InjectMocks CodeSystemServiceImpl vst; @Test public void testCreateCodeSystem() { CodeSystemDto created = mock(CodeSystemDto.class); when(created.getDisplayName()).thenReturn("displayName"); CodeSystem codeSystem = mock(CodeSystem.class); when(codeSystemRepository.save(any(CodeSystem.class))).thenReturn( codeSystem); when(valueSetMgmtHelper.createCodeSystemDtoFromEntity(codeSystem)) .thenReturn(created); Assert.assertEquals(vst.create(created), created); } @Test public void testDeleteCodeSystem() throws CodeSystemNotFoundException { CodeSystem deleted = mock(CodeSystem.class); when(codeSystemRepository.findOne(anyLong())).thenReturn(deleted); CodeSystemDto codeSystemDto = mock(CodeSystemDto.class); when(valueSetMgmtHelper.createCodeSystemDtoFromEntity(deleted)) .thenReturn(codeSystemDto); Assert.assertEquals(vst.delete((long) 1), codeSystemDto); } @Test(expected = CodeSystemNotFoundException.class) public void testDeleteCodeSystem_throw_CodeSystemNotFoundException() throws CodeSystemNotFoundException { when(codeSystemRepository.findOne(anyLong())).thenReturn(null); vst.delete((long) 1); } @Test public void testfindAll() { List<CodeSystem> codeSystems = mock(List.class); when(codeSystemRepository.findAll()).thenReturn(codeSystems); List<CodeSystemDto> codeSystemDtos = new ArrayList(); CodeSystemDto codeSystemDto = mock(CodeSystemDto.class); codeSystemDtos.add(codeSystemDto); when(valueSetMgmtHelper.convertCodeSystemEntitiesToDtos(codeSystems)) .thenReturn(codeSystemDtos); assertEquals(vst.findAll(), codeSystemDtos); } @Test public void testfindId() { CodeSystem codeSystem = mock(CodeSystem.class); when(codeSystemRepository.findOne(anyLong())).thenReturn(codeSystem); CodeSystemDto codeSystemDto = mock(CodeSystemDto.class); when(valueSetMgmtHelper.createCodeSystemDtoFromEntity(codeSystem)) .thenReturn(codeSystemDto); assertEquals(vst.findById((long) 1), codeSystemDto); } @Test public void testUpdateCodeSystem() throws CodeSystemNotFoundException { CodeSystemDto updated = mock(CodeSystemDto.class); when(updated.getId()).thenReturn((long) 1); when(updated.getCode()).thenReturn("code"); when(updated.getName()).thenReturn("name"); when(updated.getUserName()).thenReturn("username"); CodeSystem codeSystem = mock(CodeSystem.class); when(codeSystemRepository.findOne(anyLong())).thenReturn(codeSystem); CodeSystemDto codeSystemDto = mock(CodeSystemDto.class); when(valueSetMgmtHelper.createCodeSystemDtoFromEntity(codeSystem)) .thenReturn(codeSystemDto); assertEquals(vst.update(updated), codeSystemDto); } @Test(expected = CodeSystemNotFoundException.class) public void testUpdateCodeSystem_throw_CodeSystemNotFoundException() throws CodeSystemNotFoundException { CodeSystemDto updated = mock(CodeSystemDto.class); when(codeSystemRepository.findOne(anyLong())).thenReturn(null); vst.update(updated); } }