private void validateJoinStoreConfigures(MapConfig mapConfig, Map<String, Serde> deserializedSerdes) { String leftJoinStoreKeySerde = mapConfig.get("stores.jobName-jobId-join-j1-L.key.serde"); String leftJoinStoreMsgSerde = mapConfig.get("stores.jobName-jobId-join-j1-L.msg.serde"); assertTrue("Serialized serdes should contain left join store key serde", deserializedSerdes.containsKey(leftJoinStoreKeySerde)); assertTrue("Serialized left join store key serde should be a StringSerde", leftJoinStoreKeySerde.startsWith(StringSerde.class.getSimpleName())); assertTrue("Serialized serdes should contain left join store msg serde", deserializedSerdes.containsKey(leftJoinStoreMsgSerde)); assertTrue("Serialized left join store msg serde should be a TimestampedValueSerde", leftJoinStoreMsgSerde.startsWith(TimestampedValueSerde.class.getSimpleName())); String rightJoinStoreKeySerde = mapConfig.get("stores.jobName-jobId-join-j1-R.key.serde"); String rightJoinStoreMsgSerde = mapConfig.get("stores.jobName-jobId-join-j1-R.msg.serde"); assertTrue("Serialized serdes should contain right join store key serde", deserializedSerdes.containsKey(rightJoinStoreKeySerde)); assertTrue("Serialized right join store key serde should be a StringSerde", rightJoinStoreKeySerde.startsWith(StringSerde.class.getSimpleName())); assertTrue("Serialized serdes should contain right join store msg serde", deserializedSerdes.containsKey(rightJoinStoreMsgSerde)); assertTrue("Serialized right join store msg serde should be a TimestampedValueSerde", rightJoinStoreMsgSerde.startsWith(TimestampedValueSerde.class.getSimpleName())); Config leftJoinStoreConfig = mapConfig.subset("stores.jobName-jobId-join-j1-L.", true); validateJoinStoreConfigure(leftJoinStoreConfig, "jobName-jobId-join-j1-L"); Config rightJoinStoreConfig = mapConfig.subset("stores.jobName-jobId-join-j1-R.", true); validateJoinStoreConfigure(rightJoinStoreConfig, "jobName-jobId-join-j1-R"); }
@Test public void testGenerateConfig() { // an example unbounded IO stream StreamSpec spec = new StreamSpec("stream-1", "physical-stream-1", "system-1", Collections.singletonMap("property1", "haha")); StreamEdge edge = new StreamEdge(spec, false, false, new MapConfig()); Config config = edge.generateConfig(); StreamConfig streamConfig = new StreamConfig(config); assertEquals(streamConfig.getSystem(spec.getId()), "system-1"); assertEquals(streamConfig.getPhysicalName(spec.getId()), "physical-stream-1"); assertEquals(streamConfig.getIsIntermediateStream(spec.getId()), false); assertEquals(streamConfig.getStreamProperties(spec.getId()).get("property1"), "haha"); // bounded stream spec = new StreamSpec("stream-1", "physical-stream-1", "system-1", Collections.singletonMap("property1", "haha")); edge = new StreamEdge(spec, false, false, new MapConfig()); config = edge.generateConfig(); streamConfig = new StreamConfig(config); // intermediate stream edge = new StreamEdge(spec, true, false, new MapConfig()); config = edge.generateConfig(); streamConfig = new StreamConfig(config); assertEquals(streamConfig.getIsIntermediateStream(spec.getId()), true); assertEquals(streamConfig.getDefaultStreamOffset(spec.toSystemStream()).get(), "oldest"); assertEquals(streamConfig.getPriority(spec.toSystemStream()), Integer.MAX_VALUE); } }