@Test public void testScanRecordVariantFilter() throws Exception { IdGenerator idGenerator = new IdGeneratorImpl(); final Map<String, String> variantProperties = new HashMap<String, String>(); variantProperties.put("lang", "en"); variantProperties.put("branch", null); RecordId recordId = idGenerator.newRecordId("foo"); RecordScan scan = new RecordScan(); scan.setRecordFilter(new RecordVariantFilter(recordId, variantProperties)); byte[] data = scanToBytes(scan); RecordScan parsedScan = scanFromBytes(data); assertNotNull(parsedScan.getRecordFilter()); assertTrue(parsedScan.getRecordFilter() instanceof RecordVariantFilter); assertEquals( recordId.getMaster(), ((RecordVariantFilter) parsedScan.getRecordFilter()).getMasterRecordId()); assertEquals( variantProperties, ((RecordVariantFilter) parsedScan.getRecordFilter()).getVariantProperties()); // Check json JsonNode node = new ObjectMapper().readTree(data); assertEquals( "org.lilyproject.repository.api.filter.RecordVariantFilter", node.get("recordFilter").get("@class").getTextValue()); assertEquals("USER.foo", node.get("recordFilter").get("recordId").getTextValue()); assertEquals( "en", node.get("recordFilter").get("variantProperties").get("lang").getTextValue()); assertEquals( null, node.get("recordFilter").get("variantProperties").get("branch").getTextValue()); }