use of com.linkedin.data.transform.DataComplexProcessor in project rest.li by linkedin.
the class TestFilter method testIncorrectFilter.
@Test
public void testIncorrectFilter() throws JsonParseException, IOException, DataProcessingException {
DataMap data = dataMapFromString("{ 'a': [1, 2, 3, 4, 5]}".replace('\'', '"'));
DataMap filter = dataMapFromString("{ 'a': { '$*': 'hola'}}".replace('\'', '"'));
DataComplexProcessor processor = new DataComplexProcessor(new Filter(), filter, data);
boolean thrown = false;
try {
processor.run(false);
} catch (DataProcessingException e) {
assertEquals(e.getMessages().size(), 1, "expected exactly 1 error in non fast fail mode");
thrown = true;
}
assertEquals(thrown, true, "exception should have been thrown");
}
use of com.linkedin.data.transform.DataComplexProcessor in project rest.li by linkedin.
the class TestFilter method testNonFastFailError.
@Test
public void testNonFastFailError() throws JsonParseException, IOException, DataProcessingException {
DataMap data = dataMapFromString("{ 'a': { 'x': 'a'}, 'b': 'b'}".replace('\'', '"'));
DataMap filter = dataMapFromString("{ 'a': { 'x': { 'y': 1}}, 'b': { 'z': 1}}".replace('\'', '"'));
DataComplexProcessor processor = new DataComplexProcessor(new Filter(), filter, data);
boolean thrown = false;
try {
processor.run(false);
} catch (DataProcessingException e) {
assertEquals(e.getMessages().size(), 2, "expected exactly 2 errors in non fast fail mode");
thrown = true;
}
assertEquals(thrown, true, "exception should have been thrown");
}
use of com.linkedin.data.transform.DataComplexProcessor in project rest.li by linkedin.
the class TestFilter method testMaskCompositionDuringFilteringDoesNotOverwriteOriginalMask.
@Test
public void testMaskCompositionDuringFilteringDoesNotOverwriteOriginalMask() throws JsonParseException, IOException, DataProcessingException {
DataMap data = dataMapFromString("{ 'a': { 'b': 'b'}}".replace('\'', '"'));
DataMap filter = dataMapFromString("{ '$*': { 'c': { 'd': 0}}, 'a': 1}".replace('\'', '"'));
String originalFilter = filter.toString();
DataComplexProcessor processor = new DataComplexProcessor(new Filter(), filter, data);
processor.run(false);
assertEquals(filter.toString(), originalFilter, "filter should not be modified");
}
use of com.linkedin.data.transform.DataComplexProcessor in project rest.li by linkedin.
the class TestFilter method testPathIncludedInError.
@Test
public void testPathIncludedInError() throws JsonParseException, IOException, DataProcessingException {
DataMap data = dataMapFromString("{ 'a': { 'x': 'a'}}".replace('\'', '"'));
DataMap filter = dataMapFromString("{ 'a': { 'x': { 'y': 1}}}".replace('\'', '"'));
DataComplexProcessor processor = new DataComplexProcessor(new Filter(), filter, data);
boolean thrown = false;
try {
processor.run(true);
} catch (DataProcessingException e) {
assertEquals(e.getMessages().size(), 1, "expected exactly 1 error");
Message m = e.getMessages().get(0);
assertNotNull(m.getPath(), "path should be set on a message");
assertEquals(m.getPath(), new Object[] { "a", "x" });
thrown = true;
}
assertEquals(thrown, true, "exception should have been thrown");
}
use of com.linkedin.data.transform.DataComplexProcessor in project rest.li by linkedin.
the class TestPatchGeneration method testRoundtripModifyEscapedField.
@Test(groups = { TestConstants.TESTNG_GROUP_KNOWN_ISSUE })
void testRoundtripModifyEscapedField() throws Exception {
Group g1 = new Group();
g1.data().put("$foo", new DataMap());
Group g2 = new Group(g1.data().copy());
((DataMap) g2.data().get("$foo")).put("bar", 42);
PatchTree update = PatchCreator.diff(g1, g2);
// "{$$foo={$set={bar=42}}}"
final DataMap setMap = new DataMap();
final DataMap barMap = new DataMap();
barMap.put("bar", 42);
setMap.put(PatchConstants.SET_COMMAND, barMap);
final DataMap fooMap = new DataMap();
fooMap.put("$$foo", setMap);
assertEquals(update.getDataMap(), fooMap, "PatchTree DataMap must be correct");
assertFalse(g1.equals(g2));
DataComplexProcessor processor = new DataComplexProcessor(new Patch(), update.getDataMap(), g1.data());
processor.run(false);
assertEquals(g1, g2);
}
Aggregations