Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Junit Test cases added #33

Merged
merged 1 commit into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions src/test/java/com/iemr/inventory/RoleMaster5ApplicationTests.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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"));
}

}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand All @@ -88,38 +102,43 @@ void testFetchavailability() {
void testGetslotsplit() {
List<Slot> 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';
String result = null;
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<SpecialistAvailability> slotdetails = new ArrayList<>();
SpecialistAvailability specialistAvailability = new SpecialistAvailability();
List<Slot> 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);
Expand Down
Loading
Loading