Skip to content

Commit

Permalink
Junit Test cases added
Browse files Browse the repository at this point in the history
  • Loading branch information
ravishanigarapu committed Feb 6, 2024
1 parent f145629 commit 8a6c14a
Show file tree
Hide file tree
Showing 6 changed files with 293 additions and 47 deletions.
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

0 comments on commit 8a6c14a

Please sign in to comment.