/** * */ package org.ihtsdo.otf.refset.service; import static org.mockito.Matchers.*; import static org.mockito.Mockito.*; import java.util.List; import javax.annotation.Resource; import org.ihtsdo.otf.refset.domain.Member; import org.ihtsdo.otf.refset.domain.MetaData; import org.ihtsdo.otf.refset.domain.Refset; import org.ihtsdo.otf.refset.exception.EntityAlreadyExistException; import org.ihtsdo.otf.refset.exception.EntityNotFoundException; import org.ihtsdo.otf.refset.exception.RefsetServiceException; import org.ihtsdo.otf.refset.graph.RefsetGraphAccessException; import org.ihtsdo.otf.refset.graph.gao.RefsetAdminGAO; import org.ihtsdo.otf.refset.graph.gao.RefsetGAO; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; /** * @author Episteme Partners * */ public class RefsetAuthoringServiceImplTest { @InjectMocks @Resource private RefsetAuthoringServiceImpl service; @Mock private RefsetAdminGAO gao; @Mock private RefsetGAO rGao; @Mock Refset refset; @Mock List<Refset> refsets; MetaData md; /** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { md = new MetaData(); MockitoAnnotations.initMocks(this); when(gao.addRefset(any(Refset.class))).thenReturn(md); when(gao.updateRefset(any(Refset.class))).thenReturn(md); when(refset.getCreatedBy()).thenReturn("Junit"); when(rGao.getRefset(anyString())).thenReturn(refset); when(refset.getDescription()).thenReturn("junit test refset"); } /** * @throws java.lang.Exception */ @After public void tearDown() throws Exception { } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#addRefset(org.ihtsdo.otf.refset.domain.Refset)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException * @throws EntityAlreadyExistException */ @Test public void testAddRefset() throws RefsetServiceException, RefsetGraphAccessException, EntityNotFoundException, EntityAlreadyExistException { Refset r = new Refset(); service.addRefset(r); verify(gao).addRefset(any(Refset.class)); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#addMember(java.lang.String, org.ihtsdo.otf.refset.domain.Member)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException * @throws EntityAlreadyExistException */ @Test public void testAddMember() throws RefsetServiceException, EntityNotFoundException, RefsetGraphAccessException, EntityAlreadyExistException { Member m = new Member(); m.setReferencedComponentId("someid"); service.addMember("someRefSetId", m); verify(gao).addRefset(any(Refset.class)); verify(rGao).getRefset(anyString()); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#addMember(java.lang.String, org.ihtsdo.otf.refset.domain.Member)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException * @throws EntityAlreadyExistException */ @Test(expected = EntityNotFoundException.class) public void testAddMemberWhenGivenRefsetIdNotAvailable() throws RefsetServiceException, EntityNotFoundException, RefsetGraphAccessException, EntityAlreadyExistException { doThrow(new EntityNotFoundException("Junit refset id does not exist")).when(rGao).getRefset(anyString()); Member m = new Member(); m.setReferencedComponentId("someid"); service.addMember("someRefSetId", m); verify(rGao).getRefset(anyString()); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#addMember(java.lang.String, org.ihtsdo.otf.refset.domain.Member)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException * @throws EntityAlreadyExistException */ @Test(expected = RefsetServiceException.class) public void testAddMemberRefsetGraphAccessException() throws RefsetServiceException, EntityNotFoundException, RefsetGraphAccessException, EntityAlreadyExistException { doThrow(new RefsetGraphAccessException("Junit refset graph exception")).when(rGao).getRefset(anyString()); Member m = new Member(); m.setReferencedComponentId("someid"); service.addMember("someRefSetId", m); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#addMember(java.lang.String, org.ihtsdo.otf.refset.domain.Member)}. * @throws RefsetServiceException * @throws EntityNotFoundException * @throws RefsetGraphAccessException * @throws EntityAlreadyExistException */ @Test(expected = RefsetServiceException.class) public void testAddMemberRefsetGraphAccessExceptionDuringAddRefsetCall() throws RefsetServiceException, EntityNotFoundException, RefsetGraphAccessException, EntityAlreadyExistException { doThrow(new RefsetGraphAccessException("Junit refset graph exception")).when(gao).addRefset(any(Refset.class)); Member m = new Member(); m.setReferencedComponentId("someid"); service.addMember("someRefSetId", m); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#updateRefset(org.ihtsdo.otf.refset.domain.Refset)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException */ @Test public void testUpdateRefset() throws RefsetServiceException, RefsetGraphAccessException, EntityNotFoundException { service.updateRefset(refset); verify(gao).updateRefset(any(Refset.class)); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#updateRefset(org.ihtsdo.otf.refset.domain.Refset)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException */ @Test(expected = RefsetServiceException.class) public void testUpdateRefsetGraphAccessEXception() throws RefsetServiceException, RefsetGraphAccessException, EntityNotFoundException { doThrow(new RefsetGraphAccessException("Junit refset graph exception")).when(gao).updateRefset(any(Refset.class)); service.updateRefset(refset); } /** * Test method for {@link org.ihtsdo.otf.refset.service.RefsetAuthoringServiceImpl#updateRefset(org.ihtsdo.otf.refset.domain.Refset)}. * @throws RefsetServiceException * @throws RefsetGraphAccessException * @throws EntityNotFoundException */ @Test(expected = EntityNotFoundException.class) public void testUpdateRefsetEntityNotFoundException() throws RefsetServiceException, RefsetGraphAccessException, EntityNotFoundException { doThrow(new EntityNotFoundException("Junit refset not found")).when(gao).updateRefset(any(Refset.class)); service.updateRefset(refset); } }