package edu.asu.spring.quadriga.service.resolver.impl; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import edu.asu.spring.quadriga.dao.resolver.IProjectHandleResolverDAO; import edu.asu.spring.quadriga.dao.resolver.impl.ProjectHandleResolverDAO; import edu.asu.spring.quadriga.domain.resolver.IProjectHandleResolver; import edu.asu.spring.quadriga.domain.resolver.impl.ProjectHandleResolver; import edu.asu.spring.quadriga.dto.ProjectDTO; import edu.asu.spring.quadriga.dto.ProjectHandleResolverDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaException; import edu.asu.spring.quadriga.mapper.resolver.IProjectHandleResolverMapper; import edu.asu.spring.quadriga.mapper.resolver.impl.ProjectHandleResolverMapper; import edu.asu.spring.quadriga.service.resolver.IProjectHandleResolverManager; public class ProjectHandleResolverManagerTest { @Mock private IProjectHandleResolverDAO resolverDao = Mockito.mock(ProjectHandleResolverDAO.class); @Mock private IProjectHandleResolverMapper mapper = Mockito.mock(ProjectHandleResolverMapper.class); @InjectMocks private ProjectHandleResolverManager projectHandleResolverManagerUnderTest; @Before public void setUp() { MockitoAnnotations.initMocks(this); } /** * tests * {@link IProjectHandleResolverManager#deleteProjectHandleResolver(resolver)} * method responsible for deleting the resolver from the database. * * @throws QuadrigaException */ @Test public void deleteProjectHandleResolverTest() throws QuadrigaException { // Creating dummyId String id = "123"; // creating dummy resolver IProjectHandleResolver resolver = new ProjectHandleResolver(); resolver.setId(id); // creating dummy projectHandlerResolverDTO ProjectHandleResolverDTO projectHandlerResolverDTO = new ProjectHandleResolverDTO(); projectHandlerResolverDTO.setDescription("sample"); // creating dummyprojectDTOList List<ProjectDTO> projectDTOList = new ArrayList<ProjectDTO>(); Mockito.when(resolverDao.getProjectsForResolverId(id)).thenReturn(projectDTOList); Mockito.when(mapper.mapProjectHandleResolver(resolver)).thenReturn(projectHandlerResolverDTO); // Calling the method to test boolean deleteStatus = projectHandleResolverManagerUnderTest.deleteProjectHandleResolver(resolver); assertEquals(deleteStatus, true); } /** * tests * {@link IProjectHandleResolverManager#deleteProjectHandleResolver(resolver)} * method responsible for deleting the resolver from the database. * * when there is a project using the resolver, thus cannot delete the * resolver * * @throws QuadrigaException */ @Test public void deleteProjectHandleResolverCannotDeleteTest() throws QuadrigaException { // Creating dummyId String id = "456"; // creating dummy resolver IProjectHandleResolver resolver = new ProjectHandleResolver(); resolver.setId(id); // calling dummy projectDTOList List<ProjectDTO> projectDTOList = new ArrayList<ProjectDTO>(); projectDTOList.add(new ProjectDTO()); // calling the method to test Mockito.when(resolverDao.getProjectsForResolverId(id)).thenReturn(projectDTOList); boolean deleteStatus = projectHandleResolverManagerUnderTest.deleteProjectHandleResolver(resolver); assertEquals(deleteStatus, false); } }