@Test public void overrideProperty() { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("a.b", "1")); properties.add(typedProperty("a.b.c.d", "2")); properties.add(typedProperty("a.b.c", "3")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); JSONObject b = log.getData().getProperties().optJSONObject("a").optJSONObject("b"); assertNotNull(b); assertEquals("3", b.optString("c", null)); assertNull(log.getExt()); }
@Test() public void filterInvalidProperties() throws JSONException { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("a", "b")); properties.add(typedProperty(null, "c")); properties.add(typedProperty("d", null)); CommonSchemaDataUtils.addCommonSchemaData(properties, log); assertEquals(1, log.getData().getProperties().length()); assertEquals("b", log.getData().getProperties().getString("a")); assertNull(log.getExt()); }
@Test public void deepNestingProperty() { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("a.b", "1")); properties.add(typedProperty("a.c.d", "2")); properties.add(typedProperty("a.c.e", "3")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); assertEquals(1, log.getData().getProperties().length()); JSONObject a = log.getData().getProperties().optJSONObject("a"); assertNotNull(a); assertEquals("1", a.optString("b", null)); JSONObject c = a.optJSONObject("c"); assertNotNull(c); assertEquals("2", c.optString("d", null)); assertEquals("3", c.optString("e", null)); assertNull(log.getExt()); }
@Test public void invalidBaseDataRemovesBaseType() { MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("baseType", "Some.Type")); properties.add(typedProperty("baseData", "value")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check everything removed. */ assertEquals(0, log.getData().getProperties().length()); assertNull(log.getExt().getMetadata()); }
@Test public void baseTypeOverriddenToBeInvalid() { MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("baseType", "Some.Type")); properties.add(typedProperty("baseType.something", "test")); properties.add(typedProperty("baseData.something", "test")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check only string base type was kept. */ assertEquals(2, log.getData().getProperties().length()); assertEquals("Some.Type", log.getData().getProperties().optString("baseType")); assertNull(log.getExt().getMetadata()); } }
@Test public void emptyStringsAreAllowed() throws JSONException { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("", "")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); assertEquals(1, log.getData().getProperties().length()); assertEquals("", log.getData().getProperties().getString("")); assertNull(log.getExt()); }
MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("baseType", "Some.Type")); LongTypedProperty a = new LongTypedProperty(); a.setName("p.a"); baseDataD.setValue(4); properties.add(baseDataD); properties.add(typedProperty("baseData.e", "5")); CommonSchemaDataUtils.addCommonSchemaData(properties, log);
@Test public void invalidBaseTypeRemovesBaseData() { MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); LongTypedProperty a = new LongTypedProperty(); a.setName("baseType"); a.setValue(3); properties.add(a); properties.add(typedProperty("baseData.something", "value")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check everything removed. */ assertEquals(0, log.getData().getProperties().length()); assertNull(log.getExt().getMetadata()); }