push addional code
[sdc.git] / openecomp-be / lib / openecomp-core-lib / openecomp-utilities-lib / src / test / java / org / openecomp / core / utilities / json / JsonSchemaDataGeneratorTest.java
1 package org.openecomp.core.utilities.json;
2
3 import org.openecomp.core.utilities.file.FileUtils;
4 import org.json.JSONException;
5 import org.json.JSONObject;
6 import org.testng.Assert;
7 import org.testng.annotations.Test;
8
9 public class JsonSchemaDataGeneratorTest {
10
11   public static final String SCHEMA_WITHOUT_DEFAULTS = new String(
12       FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json_schema/aSchema.json")));
13   public static final String SCHEMA_WITH_REFS_AND_DEFAULTS = new String(FileUtils.toByteArray(
14       FileUtils.getFileInputStream("jsonUtil/json_schema/schemaWithRefsAndDefaults.json")));
15   public static final String SCHEMA_WITH_INVALID_DEFAULT = new String(FileUtils.toByteArray(
16       FileUtils.getFileInputStream("jsonUtil/json_schema/schemaWithInvalidDefault.json")));
17   public static final String SCHEMA_NIC = new String(
18       FileUtils.toByteArray(FileUtils.getFileInputStream("jsonUtil/json_schema/nicSchema.json")));
19
20   @Test
21   public void testSchemaWithoutDefaults() {
22     testGenerate(SCHEMA_WITHOUT_DEFAULTS, new JSONObject());
23   }
24
25   @Test
26   public void testSchemaWithRefsAndDefaults() {
27     testGenerate(SCHEMA_WITH_REFS_AND_DEFAULTS,
28         new JSONObject(
29             "{\"cityOfBirth\":\"Tel Aviv\",\"address\":{\"city\":\"Tel Aviv\"},\"phoneNumber\":[{\"code\":1,\"location\":\"Home\"},{\"code\":2,\"location\":\"Office\"}]}"));
30   }
31
32   @Test(expectedExceptions = JSONException.class)
33   public void testSchemaWithInvalidDefault() {
34     testGenerate(SCHEMA_WITH_INVALID_DEFAULT, null);
35   }
36
37   @Test
38   public void testNicQuestionnaireSchema() {
39     testGenerate(SCHEMA_NIC,
40         new JSONObject("{\"ipConfiguration\":{\"ipv4Required\":true,\"ipv6Required\":false}}"));
41   }
42
43   private void testGenerate(String schema, JSONObject expectedData) {
44     JsonSchemaDataGenerator jsonSchemaDataGenerator = new JsonSchemaDataGenerator(schema);
45     String data = jsonSchemaDataGenerator.generateData();
46     System.out.println(data);
47     JSONObject dataJson = new JSONObject(data);
48     Assert.assertTrue(expectedData.similar(dataJson));
49   }
50 }