package com.napa.pulse.dao.impl; import com.napa.pulse.dao.interfaces.FeatureAccessDAO; import com.napa.pulse.dto.ActionResult; import com.napa.pulse.service.impl.FeatureAccessServiceImpl; 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 org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.util.ReflectionTestUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.when; /** * @author Aqueel Ahmad * 12/9/2022 */ @SpringBootTest @RunWith ( MockitoJUnitRunner.class ) public class FeatureAccessDAOImplUnitTest { @Mock JdbcTemplate jdbcTemplate; @InjectMocks FeatureAccessDAOImpl mockFeatureAccessDAOImpl; @Mock FeatureAccessServiceImpl mockFeatureAccessService; @Mock FeatureAccessDAO featureAccessDAO; @BeforeEach public void setup ( ) { MockitoAnnotations.initMocks(this); } @Test public void test_updateItemStatus ( ) { ActionResult expected = new ActionResult(); expected.setSuccess(true); ReflectionTestUtils.setField(mockFeatureAccessDAOImpl, "jdbcTemplate", jdbcTemplate); when(jdbcTemplate.update(anyString(), eq(String.class), anyInt())).thenReturn(1); ActionResult result = mockFeatureAccessDAOImpl.updateItemStatus(1, "xyz"); assertThat(result).isNotNull(); assertThat(result.isSuccess()).isEqualTo(true); } @Test public void test_getRoleAccess ( ) { List> expected = new ArrayList<>(); Map resultMap = new HashMap<>(); expected.add(resultMap); ReflectionTestUtils.setField(mockFeatureAccessDAOImpl, "jdbcTemplate", jdbcTemplate); when(jdbcTemplate.queryForList(anyString())).thenReturn(expected); List> result = mockFeatureAccessDAOImpl.getRoleAccess(); assertEquals(1, result.size()); assertNotNull(result); } @Test public void test_getAccessItems () { List> expected = new ArrayList<>(); Map resultMap = new HashMap<>(); expected.add(resultMap); ReflectionTestUtils.setField(mockFeatureAccessDAOImpl, "jdbcTemplate", jdbcTemplate); when(jdbcTemplate.queryForList(anyString())).thenReturn(expected); List> result = mockFeatureAccessDAOImpl.getAccessItems(); assertEquals(1, result.size()); assertNotNull(result); } }