Skip to content

Commit

Permalink
Merge pull request #646 from GOKULRAJ136/patch-8
Browse files Browse the repository at this point in the history
MOSIP-31269 : Added test cases for increasing the code coverage & sonar security hotspot fixes
  • Loading branch information
ckm007 authored Apr 17, 2024
2 parents 4106cdf + 1ec4a76 commit a26ef6b
Show file tree
Hide file tree
Showing 5 changed files with 1,410 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ private ClientDetailResponse callEsignetService(ClientDetail request, String cal
try {
dto.setPublicKey(objectMapper.readValue(request.getPublicKey(), Map.class));
} catch (JsonProcessingException e) {
e.printStackTrace();
LOGGER.error("Error processing public key JSON: {}", e.getMessage());
}
dto.setUserClaims(convertStringToList(request.getClaims()));
dto.setAuthContextRefs(convertStringToList(request.getAcrValues()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import java.util.List;
import java.util.Optional;

import io.mosip.pms.common.dto.*;
import io.mosip.pms.common.util.PageUtils;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
Expand All @@ -13,13 +15,12 @@
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;

import io.mosip.pms.common.dto.FilterData;
import io.mosip.pms.common.dto.FilterDto;
import io.mosip.pms.common.dto.FilterValueDto;
import io.mosip.pms.common.dto.SearchFilter;
import io.mosip.pms.common.entity.AuthPolicy;
import io.mosip.pms.common.entity.MISPLicenseEntity;
import io.mosip.pms.common.entity.Partner;
Expand All @@ -36,6 +37,9 @@
import io.mosip.pms.partner.misp.exception.MISPServiceException;
import io.mosip.pms.partner.misp.service.impl.InfraProviderServiceImpl;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;

@RunWith(SpringRunner.class)
@SpringBootTest
public class InfraProviderServiceImplTest {
Expand All @@ -48,6 +52,9 @@ public class InfraProviderServiceImplTest {

@Mock
PartnerServiceRepository partnerRepository;

@Mock
PageUtils pageUtils;

@Mock
private PartnerPolicyRequestRepository partnerPolicyRequestRepository;
Expand Down Expand Up @@ -356,4 +363,35 @@ public void filterValuesTest01() {
Mockito.when(filterHelper.filterValuesWithCode(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(filtersData);
infraProviderServiceImpl.filterValues(filterValueDto);
}

@Test
public void testSearchWithSearchDto_thenSuccess() {
SearchDto dto = new SearchDto();
dto.setFilters(new ArrayList<>());
dto.setPagination(new Pagination(0,10));
dto.setSort(new ArrayList<>());

List<MISPLicenseEntity> entities = new ArrayList<>();
MISPLicenseEntity entity1 = new MISPLicenseEntity();
entity1.setIsActive(true);
entity1.setValidToDate(LocalDateTime.now().plusYears(1));
entity1.setMispId("misp");

MISPLicenseEntity entity2 = new MISPLicenseEntity();
entity2.setIsActive(true);
entity2.setValidToDate(LocalDateTime.now().plusYears(1));
entity2.setMispId("mispId2");

entities.add(entity1);
entities.add(entity2);

Page<MISPLicenseEntity> page = new PageImpl<>(entities);

when(searchHelper.search(MISPLicenseEntity.class, dto, "mispId")).thenReturn(page);

PageResponseDto<MISPLicenseEntity> result = infraProviderServiceImpl.search(dto);

assertEquals(entities.size(), result.getData().size());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
package io.mosip.pms.test.oauth.controller;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.mosip.pms.common.request.dto.RequestWrapper;
import io.mosip.pms.common.response.dto.ResponseWrapper;
import io.mosip.pms.oauth.client.controller.ClientManagementController;
import io.mosip.pms.oauth.client.dto.*;
import io.mosip.pms.oauth.client.service.impl.ClientManagementServiceImpl;
import io.mosip.pms.partner.exception.PartnerServiceException;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@RunWith(SpringRunner.class)
@SpringBootTest
public class ClientManagementControllerTest {

@Autowired
ClientManagementController clientManagementController;

@Autowired
private ClientManagementServiceImpl serviceImpl;

Map<String, Object> public_key;

@Before
public void setUp() {

public_key = new HashMap<>();
public_key.put("kty","RSA");
public_key.put("e","AQAB");
public_key.put( "use", "sig");
public_key.put( "kid", "1bbdc9de-c24f-4801-b6b3-691ac07641af");
public_key.put( "alg", "RS256");
public_key.put( "n","wXGQA574CU-WTWPILd4S3_1sJf0Yof0kwMeNctXc1thQo70Ljfn9f4igpRe7f8qNs_W6dLuLWemFhGJBQBQ7vvickECKNJfo_EzSD_yyPCg7k_AGbTWTkuoObHrpilwJGyKVSkOIujH_FqHIVkwkVXjWc25Lsb8Gq4nAHNQEqqgaYPLEi5evCR6S0FzcXTPuRh9zH-cM0Onjv4orrfYpEr61HcRp5MXL55b7yBoIYlXD8NfalcgdrWzp4VZHvQ8yT9G5eaf27XUn6ZBeBf7VnELcKFTyw1pK2wqoOxRBc8Y1wO6rEy8PlCU6wD-mbIzcjG1wUfnbgvJOM4A5G41quQ");
}

@Test
public void testCreateOIDCClient() throws Exception {
io.mosip.pms.common.request.dto.RequestWrapper<ClientDetailCreateRequest> requestWrapper = new io.mosip.pms.common.request.dto.RequestWrapper<>();
requestWrapper.setId("42");
requestWrapper.setMetadata("Metadata");
requestWrapper.setRequest(new ClientDetailCreateRequest());
requestWrapper.setRequesttime(null);
requestWrapper.setVersion("1.0.2");
String content = (new ObjectMapper()).writeValueAsString(requestWrapper);
MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/oauth/client")
.contentType(MediaType.APPLICATION_JSON)
.content(content);
ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(clientManagementController)
.build()
.perform(requestBuilder);
actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400));
}

@Test
public void testUpdateClient() throws Exception {
io.mosip.pms.common.request.dto.RequestWrapper<ClientDetailUpdateRequest> requestWrapper = new io.mosip.pms.common.request.dto.RequestWrapper<>();
requestWrapper.setId("42");
requestWrapper.setMetadata("Metadata");
requestWrapper.setRequest(new ClientDetailUpdateRequest());
requestWrapper.setRequesttime(null);
requestWrapper.setVersion("1.0.2");
String content = (new ObjectMapper()).writeValueAsString(requestWrapper);
MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/oauth/client/{client_id}", "Client id")
.contentType(MediaType.APPLICATION_JSON)
.content(content);
ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(clientManagementController)
.build()
.perform(requestBuilder);
actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400));
}

@Test
public void testCreateOAUTHClient() throws Exception {
io.mosip.pms.common.request.dto.RequestWrapper<ClientDetailCreateRequestV2> requestWrapper = new RequestWrapper<>();
requestWrapper.setId("42");
requestWrapper.setMetadata("Metadata");
requestWrapper.setRequest(new ClientDetailCreateRequestV2());
requestWrapper.setRequesttime(null);
requestWrapper.setVersion("1.0.2");
String content = (new ObjectMapper()).writeValueAsString(requestWrapper);
MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/oauth/client")
.contentType(MediaType.APPLICATION_JSON)
.content(content);
ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(clientManagementController)
.build()
.perform(requestBuilder);
actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400));
}

@Test
public void testUpdateOAUTHClient() throws Exception {
io.mosip.pms.common.request.dto.RequestWrapper<ClientDetailUpdateRequestV2> requestWrapper = new io.mosip.pms.common.request.dto.RequestWrapper<>();
requestWrapper.setId("42");
requestWrapper.setMetadata("Metadata");
requestWrapper.setRequest(new ClientDetailUpdateRequestV2());
requestWrapper.setRequesttime(null);
requestWrapper.setVersion("1.0.2");
String content = (new ObjectMapper()).writeValueAsString(requestWrapper);
MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders
.put("/oauth/client/{client_id}", "Client id")
.contentType(MediaType.APPLICATION_JSON)
.content(content);
ResultActions actualPerformResult = MockMvcBuilders.standaloneSetup(clientManagementController)
.build()
.perform(requestBuilder);
actualPerformResult.andExpect(MockMvcResultMatchers.status().is(400));
}

@Test (expected = PartnerServiceException.class)
public void testGetOAuthClient() throws Exception {
io.mosip.pms.oauth.client.dto.ClientDetail clientDetail = new io.mosip.pms.oauth.client.dto.ClientDetail();
clientDetail.setAcrValues(Collections.singletonList("Value"));
clientDetail.setClaims(Collections.singletonList("Claims"));
clientDetail.setClientAuthMethods(Collections.singletonList("Client Auth Methods"));
clientDetail.setGrantTypes(Collections.singletonList("Grant Types"));
clientDetail.setId("123");
clientDetail.setLogoUri("Logo Uri");
clientDetail.setName("Name");
clientDetail.setPolicyId("123");
clientDetail.setPublicKey("Public Key");
clientDetail.setRedirectUris(Collections.singletonList("Redirect Uris"));
clientDetail.setStatus("Status");

when(serviceImpl.getClientDetails("123")).thenReturn(clientDetail);

ResponseWrapper<io.mosip.pms.oauth.client.dto.ClientDetail> expectedResponse = new ResponseWrapper<>();
expectedResponse.setResponse(clientDetail);

ResponseWrapper<io.mosip.pms.oauth.client.dto.ClientDetail> actualResponse = clientManagementController.getOAuthClient("123");

verify(serviceImpl).getClientDetails("123");
assertEquals(expectedResponse, actualResponse);
}

}
Loading

0 comments on commit a26ef6b

Please sign in to comment.