@Test public void testCombiner() throws IOException { addRecord(shard1, 1, "C1", "C2", "C3"); addRecord(shard1, 2, "C2", "C3", "C4"); addRecord(shard1, 3, "C1", "C2", "C3"); addRecord(shard2, 4, "C2", "C3", "C4"); addRecord(shard2, 5, "C1", "C4", "C5"); addRecord(shard2, 6, "C1", "C2", "C3"); addRecord(shard3, 7, "C4", "C5", "C6"); HollowCombiner combiner = new HollowCombiner(roundTrip(shard1), roundTrip(shard2), roundTrip(shard3)); combiner.combine(); HollowReadStateEngine combinedResult = roundTrip(combiner.getCombinedStateEngine()); Assert.assertEquals(6, combinedResult.getTypeState("A").maxOrdinal()); Assert.assertEquals(3, combinedResult.getTypeState("B").maxOrdinal()); Assert.assertEquals(5, combinedResult.getTypeState("C").maxOrdinal()); HollowSetTypeReadState bTypeState = (HollowSetTypeReadState)combinedResult.getTypeState("B"); Assert.assertTrue(setOrderingExists(bTypeState, "C1", "C2", "C3")); Assert.assertTrue(setOrderingExists(bTypeState, "C2", "C3", "C4")); Assert.assertTrue(setOrderingExists(bTypeState, "C1", "C4", "C5")); Assert.assertTrue(setOrderingExists(bTypeState, "C4", "C5", "C6")); }
@Test public void testCombinerPrimaryKey() throws IOException { HollowWriteStateEngine sEngine = createStateEngine(); List<PrimaryKey> pKeys = extractPrimaryKeys(sEngine); Assert.assertEquals(1, pKeys.size()); HollowCombiner combiner = new HollowCombiner(roundTrip(sEngine), roundTrip(shard1)); HollowReadStateEngine combinedResult = roundTrip(combiner.getCombinedStateEngine()); Assert.assertEquals(1, extractPrimaryKeys(combinedResult).size()); Assert.assertEquals(pKeys, extractPrimaryKeys(combinedResult)); Assert.assertEquals(oldPK, newPK); HollowCombiner combiner = new HollowCombiner(roundTrip(sEngine), roundTrip(shard1)); combiner.setPrimaryKeys(newPK); Assert.assertEquals(1, combiner.getPrimaryKeys().size()); Assert.assertNotEquals(oldPK, newPK); HollowCombiner combiner = new HollowCombiner(roundTrip(sEngine), roundTrip(shard1)); combiner.setPrimaryKeys(newPK); Assert.assertEquals(1, combiner.getPrimaryKeys().size()); Assert.assertNotEquals(oldPK, newPK); HollowCombiner combiner = new HollowCombiner(roundTrip(sEngine), roundTrip(shard1)); combiner.setPrimaryKeys(newPK); Assert.assertEquals(2, combiner.getPrimaryKeys().size());
@Before public void setUp() { aSchema = new HollowObjectSchema("A", 2, new PrimaryKey("A", "a1")); aSchema.addField("a1", FieldType.INT); aSchema.addField("a2", FieldType.REFERENCE, "B"); bSchema = new HollowSetSchema("B", "C"); cSchema = new HollowObjectSchema("C", 1); cSchema.addField("c1", FieldType.STRING); hashCodeFinder = new DefaultHashCodeFinder("C"); shard1 = createStateEngine(); shard2 = createStateEngine(); shard3 = createStateEngine(); }