Index: src/test/java/com/napa/pulse/dao/impl/SessionDAOImplUnitTest.java =================================================================== diff -u -r632edbfd8fd338838bacd48d2e14eac01602166e -re721495807762d47ae65ab5ecf7ea3f22d5025ac --- src/test/java/com/napa/pulse/dao/impl/SessionDAOImplUnitTest.java (.../SessionDAOImplUnitTest.java) (revision 632edbfd8fd338838bacd48d2e14eac01602166e) +++ src/test/java/com/napa/pulse/dao/impl/SessionDAOImplUnitTest.java (.../SessionDAOImplUnitTest.java) (revision e721495807762d47ae65ab5ecf7ea3f22d5025ac) @@ -1,21 +1,33 @@ package com.napa.pulse.dao.impl; +import com.google.gson.Gson; +import com.napa.pulse.dao.interfaces.SessionDAO; +import com.napa.pulse.entity.security.User; +import com.napa.pulse.service.impl.SessionServiceImpl; import org.junit.Test; import org.junit.jupiter.api.BeforeEach; import org.junit.runner.RunWith; import org.mockito.InjectMocks; -import org.mockito.*; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.Mock; +import org.mockito.MockedConstruction; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.jdbc.core.simple.SimpleJdbcCall; +import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; +import java.io.PrintWriter; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import static org.mockito.Mockito.*; +import static org.mockito.MockitoAnnotations.initMocks; /** * @author Rahul Chaudhary @@ -25,17 +37,40 @@ @RunWith(MockitoJUnitRunner.class) public class SessionDAOImplUnitTest { @InjectMocks - SessionDAOImpl sessionDAOImplMock; + private SessionDAOImpl sessionDAOImplMock; @Mock private JdbcTemplate jdbcTemplate; @Mock private SimpleJdbcCall simpleJdbcCall; + @Mock + private NamedParameterJdbcTemplate namedParameterJdbcTemplate; + @Mock + private SessionDAO sessionDAO; + + @Mock + private SessionServiceImpl sessionServiceImpl; + @Mock + private HttpServletResponse response; + @Mock + private User user; + @Mock + private PrintWriter printWriter; + @Mock + private DataSource dataSource; + + MockedConstruction mockConstruct; + + + private Gson gson; + + @BeforeEach - public void setup() { - MockitoAnnotations.initMocks(this); + public void setup() throws Exception{ + initMocks(this); + when(response.getWriter()).thenReturn(printWriter); } @Test @@ -64,4 +99,59 @@ SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("RECALC_SESSION_TOTALS"); when(simpleJdbcCall.execute(in)).thenThrow(Exception.class); } + + + + @Test + public void testGetMinMaxSessionDashboardData_SalesHistoryMinMax() throws Exception + { + PrintWriter pwt = mock(PrintWriter.class); + when(sessionDAO.isSessionFinalized(anyInt())).thenReturn(true); + when(jdbcTemplate.queryForObject(anyString(), eq(String.class))).thenReturn("DIT"); + when(namedParameterJdbcTemplate.queryForList(anyString(), anyMap())).thenReturn(new ArrayList<>()); + HttpServletResponse resp = mock(HttpServletResponse.class); + PrintWriter writer = new PrintWriter("somefile.txt"); + when(resp.getWriter()).thenReturn(writer); + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "[1,2]", "[\"A\",\"B\"]", "G1", true, "true", "line", "asc", 1, 10, "", resp, user, 10, null); + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "[1,2]", "[\"A\",\"B\"]", "G1", true, "true", "salesHistory", "desc", 1, 10, "", resp, user, 10, null); + + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "[1,2]", "[\"A\",\"B\"]", "G1", true, "true", "group", "asc", 1, 10, "", resp, user, null, 20); + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "[1,2]", "[\"A\",\"B\"]", "G1", true, "true", "reviewed", "asc", 1, 10, "", resp, user, 10, 20); + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "[1,2]", "[\"A\",\"B\"]", "G1", false, "true", "perCar", "asc", 1, 10, "", resp, user, 10, 20); + + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "", "", "", true, "false", "firstStockDate", null, 1, 10, "", resp, user, 10, 20); + sessionDAOImplMock.getMinMaxSessionDashboardData( + 1, "[]", "[]", "G1", true, "true", "siteName", "asc", 1, 10, "", resp, user, 10, 20); + verify(resp, times(1)); + } + + + @Test + public void testGetMinMaxSessionDashboardCnt_AllParameters() { + + + Mockito.when(sessionDAO.isSessionFinalized(anyInt())).thenReturn(false); + Mockito.when(jdbcTemplate.queryForObject(anyString(), eq(String.class))).thenReturn("DIT"); + + mockConstruct = Mockito.mockConstruction(NamedParameterJdbcTemplate.class, (mock, context) -> { + when(mock.queryForObject(eq(anyString()), any(SqlParameterSource.class), Integer.class)).thenReturn(4); + }); + + Integer result = sessionDAOImplMock.getMinMaxSessionDashboardCnt(1, "[1,2]", "[\"A\",\"B\"]", "10", true, "true", 10, 100); + Integer result1 = sessionDAOImplMock.getMinMaxSessionDashboardCnt(1, null, null, null, null, "false", 10, null); + Integer result2 = sessionDAOImplMock.getMinMaxSessionDashboardCnt(1, "[]", "[]", "10", false, "false", null, 100); + + } + + + + + + }