Commit 890c7758 authored by NehaVerma's avatar NehaVerma
Browse files

SC-1822 testcase for schema validator

parent b05ca3f1
schema-updates 3.9.0-prod-fix 4.1.0_fixes AmiableAnil-patch-1 Gcloud_copy Gcloud_fix Remove_unwantedCode_Gcloud_fix actors-test bulk-upload-comptenecy-mapping bulk-upload-excelsheet bulk-upload-test_excel bulk_upload code-cleanup csp-migration dependabot/maven/platform-core/platform-telemetry/ch.qos.logback-logback-core-1.2.9 dependabot/maven/search-api/search-core/org.apache.httpcomponents-httpclient-4.5.13 ft-spike knowlg-friday knowlg-oneclick local-setup-fix local-setup-kube m-4.2.0 master master-data new_objecttype org-target-enhancement patch-1 patch-2 patch-3 poc_bulk_upload qs-schema rahul_bulk_upload_postgres release-3.2.0 release-3.3.0 release-3.4.0 release-3.5.0 release-3.6.0 release-3.6.0.1 release-3.7.0 release-3.8.0 release-3.9.0 release-4.0.0 release-4.1.0 release-4.10.0 release-4.10.1 release-4.2.0 release-4.3.0 release-4.4.0 release-4.5.0 release-4.6.0 release-4.7.0 release-4.7.0-debug release-4.8.0 release-4.8.0-debug release-4.9.0 release-4.9.1 release-5.0.0 release-5.0.1 release-5.1.0 release-5.1.0-content release-5.2.0 release-5.3.0 revert-718-visiblity-private-api revert-719-assessment-private-read-api revert-720-visiblity-public-search-api revert-721-visiblity-private-search-api review-4.1.0 s-debug schema-update-4.0 release-5.2.0_RC2 release-5.2.0_RC1 release-5.1.0_RC1 release-5.0.0_RC2 release-5.0.0_RC1 release-4.10.0_RC2 release-4.10.0_RC1 release-4.9.1_RC1 release-4.9.0_RC8 release-4.9.0_RC7 release-4.9.0_RC6 release-4.9.0_RC5 release-4.9.0_RC4 release-4.9.0_RC3 release-4.9.0_RC2 release-4.9.0_RC1 release-4.8.0_RC5 release-4.8.0_RC4 release-4.8.0_RC3 release-4.8.0_RC2 release-4.8.0_RC1 release-4.7.0_RC6 release-4.7.0_RC5 release-4.7.0_RC4 release-4.7.0_RC3 release-4.7.0_RC2 release-4.7.0_RC1 release-4.6.0_RC2 release-4.6.0_RC1 release-4.5.0_RC2 release-4.5.0_RC1 release-4.4.0_RC6 release-4.4.0_RC5 release-4.4.0_RC4 release-4.4.0_RC3 release-4.4.0_RC2 release-4.4.0_RC1 release-4.3.0_RC10 release-4.3.0_RC9 release-4.3.0_RC8 release-4.3.0_RC7 release-4.3.0_RC6 release-4.3.0_RC5 release-4.3.0_RC4 release-4.3.0_RC3 release-4.3.0_RC2 release-4.3.0_RC1 release-4.2.0_RC13 release-4.2.0_RC12 release-4.2.0_RC11 release-4.2.0_RC10 release-4.2.0_RC9 release-4.2.0_RC8 release-4.2.0_RC7 release-4.2.0_RC6 release-4.2.0_RC5 release-4.2.0_RC4 release-4.2.0_RC3 release-4.2.0_RC2 release-4.2.0_RC1 release-4.1.0_RC13 release-4.1.0_RC12 release-4.1.0_RC11 release-4.1.0_RC10 release-4.1.0_RC9 release-4.1.0_RC8 release-4.1.0_RC7 release-4.1.0_RC6 release-4.1.0_RC5 release-4.1.0_RC4 release-4.1.0_RC3 release-4.1.0_RC2 release-4.1.0_RC1 release-4.0.0_RC9 release-4.0.0_RC8 release-4.0.0_RC7 release-4.0.0_RC6 release-4.0.0_RC5 release-4.0.0_RC4 release-4.0.0_RC3 release-4.0.0_RC2 release-4.0.0_RC1 release-3.9.0_RC12 release-3.9.0_RC11 release-3.9.0_RC10 release-3.9.0_RC9 release-3.9.0_RC8 release-3.9.0_RC7 release-3.9.0_RC6 release-3.9.0_RC5 release-3.9.0_RC4 release-3.9.0_RC3 release-3.9.0_RC2 release-3.9.0_RC1 release-3.8.0_RC9 release-3.8.0_RC8 release-3.8.0_RC7 release-3.8.0_RC6 release-3.8.0_RC5 release-3.8.0_RC4 release-3.8.0_RC3 release-3.8.0_RC2 release-3.8.0_RC1 release-3.7.0_RC1 release-3.6.0_RC5 release-3.6.0_RC4 release-3.6.0_RC3 release-3.6.0_RC2 release-3.6.0_RC1 release-3.5.0 release-3.5.0_RC2 release-3.5.0_RC1 release-3.4.0 release-3.4.0_RC2 release-3.4.0_RC1 release-3.3.0_RC10 release-3.3.0_RC9 release-3.3.0_RC8 release-3.3.0_RC7 release-3.3.0_RC6 release-3.3.0_RC5 release-3.3.0_RC4 release-3.3.0_RC3 release-3.3.0_RC2 release-3.3.0_RC1 release-3.2.0_RC9 release-3.2.0_RC8 release-3.2.0_RC7 release-3.2.0_RC6 release-3.2.0_RC5 release-3.2.0_RC4 release-3.2.0_RC3
No related merge requests found
Showing with 27 additions and 7 deletions
+27 -7
......@@ -18,6 +18,7 @@ import org.sunbird.schema.ISchemaValidator;
import org.sunbird.schema.SchemaValidatorFactory;
import org.sunbird.schema.dto.ValidationResult;
import java.lang.reflect.Method;
import java.util.*;
@PrepareForTest({Config.class})
......@@ -25,6 +26,7 @@ public class TestBaseSchemaValidator {
static ISchemaValidator validator;
ObjectMapper mapper = new ObjectMapper();
private BaseSchemaValidator baseSchemaValidator;
@BeforeClass
public static void init(){
......@@ -53,21 +55,39 @@ public class TestBaseSchemaValidator {
@Test
public void testGetStructuredData() throws Exception {
Config config = Mockito.mock(Config.class);
Mockito.when(config.hasPath("relations")).thenReturn(true);
BaseSchemaValidator baseSchemaValidator = Mockito.mock(BaseSchemaValidator.class);
Whitebox.setInternalState(baseSchemaValidator, "name", "version");
Mockito.when(baseSchemaValidator.getConfig()).thenReturn(config);
ConfigObject obj = Mockito.mock(ConfigObject.class);
Mockito.when(baseSchemaValidator.getConfig().getObject("relations")).thenReturn(obj);
mockClass();
Mockito.doCallRealMethod().when(baseSchemaValidator).getStructuredData(getInput());
ValidationResult result = baseSchemaValidator.getStructuredData(getInput());
Assert.assertTrue(MapUtils.isNotEmpty(result.getMetadata()));
Assert.assertTrue(StringUtils.equals((String) result.getMetadata().get("name"), "c-12"));
}
@Test
public void testCleanEmptyKeys() throws Exception {
mockClass();
Method cleanEmptyKeys = BaseSchemaValidator.class.getDeclaredMethod("cleanEmptyKeys", Map.class);
cleanEmptyKeys.setAccessible(true);
Map<String, Object> inputMap = getInput();
inputMap.put("emptyString", "");
inputMap.put("emptyMap", new HashMap<>());
Map<String, Object> resultMap = (Map<String, Object>) cleanEmptyKeys.invoke(baseSchemaValidator, inputMap);
Assert.assertTrue(MapUtils.isNotEmpty(resultMap));
Assert.assertTrue(!resultMap.containsKey("emptyString"));
Assert.assertTrue(!resultMap.containsKey("emptyMap"));
}
public Map<String, Object> getInput() throws Exception {
Map<String, Object> input = mapper.readValue("{\"contentType\":\"Resource\",\"name\":\"c-12\",\"code\":\"c-12\",\"mimeType\":\"application/pdf\",\"tags\":[\"colors\",\"games\"],\"subject\":[\"Hindi\",\"English\"],\"medium\":[\"Hindi\",\"English\"],\"channel\":\"in.ekstep\",\"osId\":\"org.ekstep.quiz.app\",\"contentEncoding\":\"identity\",\"contentDisposition\":\"inline\"}", Map.class);
return input;
}
public void mockClass() {
Config config = Mockito.mock(Config.class);
Mockito.when(config.hasPath("relations")).thenReturn(true);
baseSchemaValidator = Mockito.mock(BaseSchemaValidator.class);
Whitebox.setInternalState(baseSchemaValidator, "name", "version");
Mockito.when(baseSchemaValidator.getConfig()).thenReturn(config);
ConfigObject obj = Mockito.mock(ConfigObject.class);
Mockito.when(baseSchemaValidator.getConfig().getObject("relations")).thenReturn(obj);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment