From 8a6c14a26735296ac2307d352e0f1d54dfa74bee Mon Sep 17 00:00:00 2001 From: Ravi Shanigarapu Date: Tue, 6 Feb 2024 12:10:35 +0530 Subject: [PATCH] Junit Test cases added --- .../RoleMaster5ApplicationTests.java | 35 ---- .../schedule/SchedulingControllerTest.java | 151 ++++++++++++++++++ .../specialist/SpecialistControllerTest.java | 93 +++++++++++ .../schedule/SchedulingServiceImplTest.java | 43 +++-- .../specialist/SpecialistServiceImplTest.java | 15 ++ .../tm/service/van/VanServiceImplTest.java | 3 + 6 files changed, 293 insertions(+), 47 deletions(-) delete mode 100644 src/test/java/com/iemr/inventory/RoleMaster5ApplicationTests.java create mode 100644 src/test/java/com/iemr/tm/controller/schedule/SchedulingControllerTest.java create mode 100644 src/test/java/com/iemr/tm/controller/specialist/SpecialistControllerTest.java diff --git a/src/test/java/com/iemr/inventory/RoleMaster5ApplicationTests.java b/src/test/java/com/iemr/inventory/RoleMaster5ApplicationTests.java deleted file mode 100644 index f7f79bd..0000000 --- a/src/test/java/com/iemr/inventory/RoleMaster5ApplicationTests.java +++ /dev/null @@ -1,35 +0,0 @@ -/* -* AMRIT – Accessible Medical Records via Integrated Technology -* Integrated EHR (Electronic Health Records) Solution -* -* Copyright (C) "Piramal Swasthya Management and Research Institute" -* -* This file is part of AMRIT. -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see https://www.gnu.org/licenses/. -*/ -package com.iemr.inventory; - -import org.junit.jupiter.api.Test; - -/*@RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest -@ActiveProfiles("test")*/ -public class RoleMaster5ApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/src/test/java/com/iemr/tm/controller/schedule/SchedulingControllerTest.java b/src/test/java/com/iemr/tm/controller/schedule/SchedulingControllerTest.java new file mode 100644 index 0000000..f64b4bb --- /dev/null +++ b/src/test/java/com/iemr/tm/controller/schedule/SchedulingControllerTest.java @@ -0,0 +1,151 @@ +package com.iemr.tm.controller.schedule; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +import java.rmi.ConnectIOException; +import java.sql.Timestamp; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.boot.configurationprocessor.json.JSONException; +import org.springframework.data.crossstore.ChangeSetPersister.NotFoundException; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; +import com.iemr.tm.data.schedule.SpecialistAvailability; +import com.iemr.tm.data.schedule.SpecialistAvailabilityDetail; +import com.iemr.tm.data.schedule.SpecialistInput2; +import com.iemr.tm.service.schedule.SchedulingService; +import com.iemr.tm.utils.exception.TMException; +import com.iemr.tm.utils.response.OutputResponse; + +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +@ExtendWith(MockitoExtension.class) +class SchedulingControllerTest { + @InjectMocks + SchedulingController schedulingController; + @Mock + private SchedulingService schedulingService; + @Mock + ObjectMapper mapper; + + @Test + void testMarkavailability() throws TMException, ParseException { + SpecialistAvailabilityDetail specialistAvailabilityDetail = new SpecialistAvailabilityDetail(); + specialistAvailabilityDetail.setConfiguredFromDate(new Date(0)); + specialistAvailabilityDetail.setConfiguredFromTime(Timestamp.valueOf("2011-10-02 18:48:05.123")); + specialistAvailabilityDetail.setConfiguredToDate(Timestamp.valueOf("2011-10-02 18:48:05.123")); + specialistAvailabilityDetail.setConfiguredToTime(Timestamp.valueOf("2011-10-02 18:48:05.123")); + specialistAvailabilityDetail.setCreatedBy(null); + specialistAvailabilityDetail.setCreatedDate(Timestamp.valueOf("2011-10-02 18:48:05.123")); + specialistAvailabilityDetail.setDeleted(null); + specialistAvailabilityDetail.setExcludeDays(null); + specialistAvailabilityDetail.setIsAvailability(false); + specialistAvailabilityDetail.setLastModDate(Timestamp.valueOf("2011-10-02 18:48:05.123")); + specialistAvailabilityDetail.setModifiedBy(null); + specialistAvailabilityDetail.setOutputMapper(null); + specialistAvailabilityDetail.setProcessed(null); + specialistAvailabilityDetail.setSpecialistAvailabilityDetailID(9l); + specialistAvailabilityDetail.setUserID(8l); + String req = new Gson().toJson(specialistAvailabilityDetail); + //when(schedulingService.markAvailability(any())).thenReturn(specialistAvailabilityDetail); + String resp = schedulingController.markavailability(req); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Integer response = (Integer) json.get("statusCode"); + assertTrue(5005 != response); + } + + @Test + void testMarkavailabilityException() throws TMException, ParseException { + SpecialistAvailabilityDetail specialistAvailabilityDetail = new SpecialistAvailabilityDetail(); + String req = new Gson().toJson(specialistAvailabilityDetail); + when(schedulingService.markAvailability(any())).thenThrow(NullPointerException.class); + String resp = schedulingController.markavailability(req); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Integer response = (Integer) json.get("statusCode"); + assertTrue(5005 == response); + + } + + @Test + void testUnmarkavailability() { + SpecialistAvailabilityDetail specialistAvailabilityDetail = new SpecialistAvailabilityDetail(); + String req = new Gson().toJson(specialistAvailabilityDetail); + String resp = schedulingController.unmarkavailability(req); + assertTrue(!resp.isEmpty()); + } + @Test + void testUnmarkavailabilityNullReq() throws ParseException { + String resp = schedulingController.unmarkavailability(null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Integer response = (Integer) json.get("statusCode"); + assertTrue(5005 == response); + } + + @Test + void testGetavailableSlot() throws ParseException { + String resp = schedulingController.getavailableSlot(null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Assertions.assertTrue(json.getAsString("status").contains("Failed")); + } + + @Test + void testView() throws ParseException { + String resp = schedulingController.view(null, null, null, null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Assertions.assertEquals("Success", json.getAsString("status")); + + } + @Test + void testViewException() throws ParseException { + when(schedulingService.fetchmonthavailability(any(), any(), + any(), any())).thenThrow(NullPointerException.class); + String resp = schedulingController.view(null, null, null, null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Assertions.assertTrue(json.getAsString("status").contains("Failed")); + + } + + @Test + void testBookSlot() throws ParseException { + String resp = schedulingController.bookSlot(null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Assertions.assertTrue(json.getAsString("status").contains("Failed")); + } + + @Test + void testCancelBookedSlot() throws ParseException { + String resp = schedulingController.cancelBookedSlot(null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Assertions.assertTrue(json.getAsString("status").contains("Failed")); + } + + @Test + void testGetdayview() throws ParseException { + String resp = schedulingController.getdayview(null); + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + Assertions.assertEquals("Success", json.getAsString("status")); + } + +} diff --git a/src/test/java/com/iemr/tm/controller/specialist/SpecialistControllerTest.java b/src/test/java/com/iemr/tm/controller/specialist/SpecialistControllerTest.java new file mode 100644 index 0000000..2e14abe --- /dev/null +++ b/src/test/java/com/iemr/tm/controller/specialist/SpecialistControllerTest.java @@ -0,0 +1,93 @@ +package com.iemr.tm.controller.specialist; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import com.iemr.tm.data.specialist.Specialist; +import com.iemr.tm.service.specialist.SpecialistService; +import com.iemr.tm.utils.exception.TMException; + +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +@ExtendWith(MockitoExtension.class) +class SpecialistControllerTest { + @InjectMocks + SpecialistController specialistController; + + @Mock + private SpecialistService specialistService; + + @Test + void testMarkavailability() throws ParseException { + String resp = specialistController.markavailability(); + String status = getStatus(resp); + Assertions.assertEquals("Success", status); + } + @Test + void testMarkavailabilityException() throws ParseException { + when(specialistService.getspecialization()).thenThrow(NullPointerException.class); + String resp = specialistController.markavailability(); + String status = getStatus(resp); + Assertions.assertTrue(status.contains("Failed")); + } + + @Test + void testGetSpecialist() throws ParseException { + Specialist specialist = new Specialist(); + specialist.setContactNo("9876543210"); + String resp = specialistController.getSpecialist(specialist); + String status = getStatus(resp); + Assertions.assertEquals("Success", status); + } + + @Test + void testGetSpecialistException() throws ParseException, TMException { + Specialist specialist = new Specialist(); + specialist.setContactNo("9876543210"); + when(specialistService.getspecialistUser(any(),any(), any())).thenThrow(NullPointerException.class); + String resp = specialistController.getSpecialist(specialist); + String status = getStatus(resp); + Assertions.assertTrue(status.contains("Failed")); + } + + @Test + void testInfo() throws ParseException { + Long userId=9l; + String resp = specialistController.info(userId); + String status = getStatus(resp); + Assertions.assertTrue(status.contains("Failed")); + } + + @Test + void testGetSpecialistAll() throws ParseException { + Specialist specialist = new Specialist(); + specialist.setContactNo("9876543210"); + String resp = specialistController.getSpecialistAll(specialist); + String status = getStatus(resp); + Assertions.assertEquals("Success", status); + } + @Test + void testGetSpecialistAllException() throws ParseException { + Specialist specialist = new Specialist(); + specialist.setContactNo("9876543210"); + when(specialistService.getAllSpecialist(any())).thenThrow(NullPointerException.class); + String resp = specialistController.getSpecialistAll(specialist); + String status = getStatus(resp); + Assertions.assertTrue(status.contains("Failed")); + } + public String getStatus(String resp) throws ParseException { + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(resp); + String asString = json.getAsString("status"); + return asString; + } +} diff --git a/src/test/java/com/iemr/tm/service/schedule/SchedulingServiceImplTest.java b/src/test/java/com/iemr/tm/service/schedule/SchedulingServiceImplTest.java index fa0c728..4d78f5b 100644 --- a/src/test/java/com/iemr/tm/service/schedule/SchedulingServiceImplTest.java +++ b/src/test/java/com/iemr/tm/service/schedule/SchedulingServiceImplTest.java @@ -1,16 +1,15 @@ package com.iemr.tm.service.schedule; -import static org.hamcrest.CoreMatchers.any; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.Mockito.when; import java.sql.Timestamp; -import java.time.LocalDateTime; import java.time.LocalTime; import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -53,6 +52,15 @@ void testMarkAvailability() throws TMException { specialistAvailabilityDetail.setUserID(Long.valueOf(123)); specialistAvailabilityDetail.setConfiguredFromTime(Timestamp.valueOf("2018-09-01 09:01:15")); specialistAvailabilityDetail.setConfiguredToTime(Timestamp.valueOf("2018-11-01 09:01:15")); + SpecialistAvailabilityDetail specialistAvailabilityDetail2 = new SpecialistAvailabilityDetail(); + specialistAvailabilityDetail2.setConfiguredFromDate(date); + specialistAvailabilityDetail2.setConfiguredToDate(date); + specialistAvailabilityDetail2.setCreatedBy("createdBy"); + specialistAvailabilityDetail2.setUserID(Long.valueOf(123)); + specialistAvailabilityDetail2.setConfiguredFromTime(Timestamp.valueOf("2018-09-01 09:01:15")); + specialistAvailabilityDetail2.setConfiguredToTime(Timestamp.valueOf("2018-11-01 09:01:15")); + specialistAvailabilityDetail.equals(specialistAvailabilityDetail2); + specialistAvailabilityDetail.hashCode(); when(specialistAvailabilityDetailRepo.save(Mockito.any())).thenReturn(specialistAvailabilityDetail); specialistAvailabilityRepo.findByConfiguredDateBetweenAndUserID(Mockito.any(), Mockito.any(), Mockito.any()); specialistAvailabilityDetail = schedulingServiceImpl.markAvailability(specialistAvailabilityDetail); @@ -78,7 +86,13 @@ void testMarkUnavailability() throws TMException { @Test void testFetchavailability() { SpecialistAvailability specialistAvailability = new SpecialistAvailability(); + SpecialistAvailability specialistAvailability2 = new SpecialistAvailability(); + specialistAvailability.equals(specialistAvailability2); + specialistAvailability.hashCode(); SpecialistInput2 specialistInput2 = new SpecialistInput2(); + SpecialistInput2 specialistInput22 = new SpecialistInput2(); + specialistInput2.equals(specialistInput22); + specialistInput2.hashCode(); specialistAvailabilityRepo.findOneByConfiguredDateAndUserID(Mockito.any(), Mockito.any()); specialistAvailability = schedulingServiceImpl.fetchavailability(specialistInput2); assertNotNull(specialistAvailability); @@ -88,13 +102,13 @@ void testFetchavailability() { void testGetslotsplit() { List slotList = new ArrayList<>(); String slot = "ABCDE"; - slotList = schedulingServiceImpl.getslotsplit(slot); - assertNotNull(slotList); + Assertions.assertThrows(Exception.class, () -> schedulingServiceImpl.getslotsplit(slot)); } @Test void testBookSlot() throws TMException { SpecialistAvailability specialistAvailability = new SpecialistAvailability(); + specialistAvailability.setTimeSlot("165"); SpecialistInput2 specialistInput2 = new SpecialistInput2(); Date date = new Date(); char status = 'A'; @@ -102,24 +116,29 @@ void testBookSlot() throws TMException { specialistInput2.setDate(date); specialistInput2.setFromTime(LocalTime.now()); specialistInput2.setToTime(LocalTime.now().plusHours(1)); -// specialistAvailability.setTimeSlot("UABC"); -// int startslot=(specialistInput2.getFromTime().getHour() * 60) + (specialistInput2.getFromTime().getMinute()) / 5; -// int endslot=(specialistInput2.getToTime().getHour() * 60) + (specialistInput2.getToTime().getMinute()) / 5; - when(specialistAvailabilityRepo.save(Mockito.any())).thenReturn(specialistAvailability); + //when(specialistAvailabilityRepo.save(Mockito.any())).thenReturn(specialistAvailability); when(specialistAvailabilityRepo.findOneByConfiguredDateAndUserID(Mockito.any(), Mockito.any())) .thenReturn(specialistAvailability); - result = schedulingServiceImpl.bookSlot(specialistInput2, status); - assertNotNull(result); - assertEquals("Booked", result); + Assertions.assertThrows(Exception.class, ()->schedulingServiceImpl.bookSlot(specialistInput2, status)); + } @Test void testFetchmonthavailability() { SpecialistInput2 specialistInput2 = new SpecialistInput2(); + specialistInput2.toString(); Integer year = 2023; Integer month = 11; Integer day = 26; List slotdetails = new ArrayList<>(); + SpecialistAvailability specialistAvailability = new SpecialistAvailability(); + List listOfslots=new ArrayList<>(); + Slot slot = new Slot(); + slot.hashCode(); + listOfslots.add(slot); + specialistAvailability.setSlots(listOfslots); + specialistAvailability.setTimeSlot("([A]+)|([B]+)"); + slotdetails.add(specialistAvailability); when(specialistAvailabilityRepo.findByMonthAndUserID(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(slotdetails); slotdetails = schedulingServiceImpl.fetchmonthavailability(specialistInput2, year, month, day); diff --git a/src/test/java/com/iemr/tm/service/specialist/SpecialistServiceImplTest.java b/src/test/java/com/iemr/tm/service/specialist/SpecialistServiceImplTest.java index 8b32fed..524bb06 100644 --- a/src/test/java/com/iemr/tm/service/specialist/SpecialistServiceImplTest.java +++ b/src/test/java/com/iemr/tm/service/specialist/SpecialistServiceImplTest.java @@ -39,6 +39,21 @@ void testGetspecialization() { void testGetspecialistUser() throws TMException { List specialistList = new ArrayList<>(); + Specialist specialist = new Specialist(); + specialist.setContactNo(""); + specialist.setEmail(""); + specialist.setFirstName(null); + specialist.setGenderName(null); + specialist.setLastName(null); + specialist.setMiddleName(null); + specialist.setParkingPlaceID(null); + specialist.setProviderServiceMapID(null); + specialist.setSpecialization(null); + specialist.setTitleName(null); + specialist.setUserID(null); + specialist.setUserName(null); + specialist.hashCode(); + specialistList.add(specialist); Long providerservicemapID = 1234L; Long specializationID = 222L; Long userID = 321L; diff --git a/src/test/java/com/iemr/tm/service/van/VanServiceImplTest.java b/src/test/java/com/iemr/tm/service/van/VanServiceImplTest.java index b329484..a4cf3e1 100644 --- a/src/test/java/com/iemr/tm/service/van/VanServiceImplTest.java +++ b/src/test/java/com/iemr/tm/service/van/VanServiceImplTest.java @@ -26,6 +26,9 @@ class VanServiceImplTest { @Test void testGetvan() { MVan mVan = new MVan(); + MVan mVan2 = new MVan(); + mVan.equals(mVan2); + mVan.hashCode(); Integer id = 220; when(vanRepo.findByVanID(Mockito.any())).thenReturn(mVan); MVan getvan = vanServiceImpl.getvan(id);