@Test public void testGetTableSpecificPropsFromState() { SourceState state = new SourceState(); state.setProp(DatasetUtils.DATASET_SPECIFIC_PROPS, "[{\"dataset\":\"Entity1\", \"value\": 1}, {\"dataset\":\"Table2\", \"value\":2}]"); // We should look in the dataset specific properties using the entity name, not table name SourceEntity se1 = new SourceEntity("Entity1", "Table2"); SourceEntity se3 = new SourceEntity("Entity3", "Table3"); Set<SourceEntity> entities = ImmutableSet.of(se1, se3); Map<SourceEntity, State> datasetProps = QueryBasedSource.getTableSpecificPropsFromState(entities, state); // Value 1 should be returned for se1, no prpos should be returned for se3 Assert.assertEquals(datasetProps.size(), 1); Assert.assertTrue(datasetProps.containsKey(se1)); State se1Props = datasetProps.get(se1); Assert.assertEquals(se1Props.getProp("value"), "1"); }
public static Optional<SourceEntity> fromState(State state) { String sourceEntityName; String destTableName; if (state.contains(ConfigurationKeys.SOURCE_ENTITY)) { sourceEntityName = state.getProp(ConfigurationKeys.SOURCE_ENTITY); destTableName = state.getProp(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY, sanitizeEntityName(sourceEntityName)); } else if (state.contains(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY)) { destTableName = state.getProp(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY); sourceEntityName = destTableName; } else { return Optional.absent(); } return Optional.of(new SourceEntity(sourceEntityName, destTableName)); }
@Test public void testSourceEntity() { SourceEntity se1 = SourceEntity.fromSourceEntityName("SourceEntity1"); Assert.assertEquals(se1.getSourceEntityName(), "SourceEntity1"); Assert.assertEquals(se1.getDestTableName(), "SourceEntity1"); Assert.assertEquals(se1.getDatasetName(), "SourceEntity1"); SourceEntity se2 = SourceEntity.fromSourceEntityName("SourceEntity$2"); Assert.assertEquals(se2.getSourceEntityName(), "SourceEntity$2"); Assert.assertEquals(se2.getDestTableName(), "SourceEntity_2"); Assert.assertEquals(se2.getDatasetName(), "SourceEntity$2"); State st1 = new State(); st1.setProp(ConfigurationKeys.SOURCE_ENTITY, "SourceEntity3"); st1.setProp(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY, "SourceEntity3_Table"); Optional<SourceEntity> se3 = SourceEntity.fromState(st1); Assert.assertTrue(se3.isPresent()); Assert.assertEquals(se3.get().getSourceEntityName(), "SourceEntity3"); Assert.assertEquals(se3.get().getDestTableName(), "SourceEntity3_Table"); Assert.assertEquals(se3.get().getDatasetName(), "SourceEntity3"); Assert.assertEquals(se3.get(), new SourceEntity("SourceEntity3", "SourceEntity3_Table")); State st2 = new State(); st2.setProp(ConfigurationKeys.SOURCE_ENTITY, "SourceEntity$4"); Optional<SourceEntity> se4 = SourceEntity.fromState(st2); Assert.assertTrue(se4.isPresent()); Assert.assertEquals(se4.get(), SourceEntity.fromSourceEntityName("SourceEntity$4")); State st3 = new State(); st3.setProp(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY, "Table5"); Optional<SourceEntity> se5 = SourceEntity.fromState(st3); Assert.assertTrue(se5.isPresent()); Assert.assertEquals(se5.get(), SourceEntity.fromSourceEntityName("Table5")); }
public static Optional<SourceEntity> fromState(State state) { String sourceEntityName; String destTableName; if (state.contains(ConfigurationKeys.SOURCE_ENTITY)) { sourceEntityName = state.getProp(ConfigurationKeys.SOURCE_ENTITY); destTableName = state.getProp(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY, sanitizeEntityName(sourceEntityName)); } else if (state.contains(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY)) { destTableName = state.getProp(ConfigurationKeys.EXTRACT_TABLE_NAME_KEY); sourceEntityName = destTableName; } else { return Optional.absent(); } return Optional.of(new SourceEntity(sourceEntityName, destTableName)); }
public static SourceEntity fromSourceEntityName(String sourceEntityName) { return new SourceEntity(sourceEntityName, sanitizeEntityName(sourceEntityName)); }
SourceEntity expected = new SourceEntity("Table3", "PropShouldNotBeIgnored"); Assert.assertEquals(res.size(), 1); Assert.assertTrue(res.contains(expected), "Missing Table3 in " + res);
public static SourceEntity fromSourceEntityName(String sourceEntityName) { return new SourceEntity(sourceEntityName, sanitizeEntityName(sourceEntityName)); }