package com.napa.pulse.service.impl; import com.napa.pulse.entity.pulseui.TrainingResource; import com.napa.pulse.repository.ExportColumnNameRepository; import com.napa.pulse.repository.TrainingResourceRepository; import org.junit.Test; import org.junit.jupiter.api.BeforeEach; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.boot.test.context.SpringBootTest; import java.util.Collections; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; /** * @author Aqueel Ahmad * 29/08/2022 */ @SpringBootTest @RunWith (MockitoJUnitRunner.class ) public class TrainingResourceServiceImplUnitTest { @Mock TrainingResourceRepository trainingResourceRepository; @Mock ExportColumnNameRepository exportColumnNameRepository; @InjectMocks TrainingResourceServiceImpl trainingResourceImpl; private TrainingResource trainingResource; @BeforeEach public void setUp() { MockitoAnnotations.initMocks(this); trainingResource = Mockito.mock(TrainingResource.class); trainingResource.setId(1); trainingResource.setIsActive(1); trainingResource.setResourceGroup("NON_STATIC"); trainingResource.setUpdateDate(new java.sql.Date(System.currentTimeMillis())); trainingResource.setCreatedBy("testUser"); trainingResource.setUpdatedBy("testUser"); //ReflectionTestUtils .setField(trainingResourceImpl,"trainingResourceRepository",trainingResourceRepository); } @Test public void test_CreateNewItem ( ) { TrainingResourceServiceImpl trainingResourceImpl = new TrainingResourceServiceImpl(exportColumnNameRepository,trainingResourceRepository); TrainingResource trainingResource = Mockito.mock(TrainingResource.class); trainingResource.setIsActive(1); when(trainingResourceRepository.save(any(TrainingResource.class))).thenReturn(trainingResource); TrainingResource savedResponse = trainingResourceImpl.createNewItem(trainingResource); assertNotNull(savedResponse); assertEquals(trainingResource.getIsActive(),savedResponse.getIsActive()); } @Test public void test_getAllResources ( ) { //assertNotNull(trainingResourceRepository); //trainingResourceRepository = Mockito.mock(TrainingResourceRepository.class); TrainingResource trainingResource = Mockito.mock(TrainingResource.class); trainingResourceImpl = new TrainingResourceServiceImpl(exportColumnNameRepository,trainingResourceRepository); trainingResource.setId(1); trainingResource.setIsActive(1); trainingResource.setResourceGroup("NON_STATIC"); trainingResource.setUpdateDate(new java.sql.Date(System.currentTimeMillis())); trainingResource.setCreatedBy("testUser"); trainingResource.setUpdatedBy("testUser"); when(trainingResourceRepository.findByIsActiveOrderByDateDesc(anyInt(), anyString())).thenReturn(Collections.singleton(trainingResource)); Iterable trainingResources = trainingResourceImpl.getAllResources("STATIC"); assertThat(trainingResources).isNotNull(); } @Test public void testGetResourceLink() { String expectedUrl = "http://example.com/resource"; when(trainingResourceRepository.getResourceUrl(anyString(), anyString())).thenReturn(expectedUrl); String result = trainingResourceImpl.getResourceLink("testTitle", "NON_STATIC"); assertNotNull(result); assertEquals(expectedUrl, result); verify(trainingResourceRepository, times(1)).getResourceUrl("testTitle", "NON_STATIC"); } @Test public void test_updateResource () { TrainingResource trainingResource = Mockito.mock(TrainingResource.class); trainingResourceImpl = new TrainingResourceServiceImpl(exportColumnNameRepository,trainingResourceRepository); when(trainingResourceRepository.findById(any())).thenReturn(java.util.Optional.of(trainingResource)); trainingResource.setResourceGroup(anyString()); trainingResource.setTitle(anyString()); trainingResource.setResourceGroup("TEST"); when(trainingResourceRepository.save(any())).thenReturn(trainingResource); trainingResource = trainingResourceImpl.updateResource(trainingResource); assertThat(trainingResource).isNotNull(); } @Test public void test_deleteResources() { TrainingResource trainingResource = Mockito.mock(TrainingResource.class); trainingResourceImpl = new TrainingResourceServiceImpl(exportColumnNameRepository,trainingResourceRepository); when(trainingResourceRepository.findById(any())).thenReturn(java.util.Optional.of(trainingResource)); trainingResource.setIsActive(anyInt()); when(trainingResourceRepository.save(any())).thenReturn(trainingResource); trainingResource = trainingResourceImpl.deleteResources(anyInt()); assertThat(trainingResource).isNotNull(); } }