@Test public void testGetInputStreamWithExpandingSystem() { String streamId = "test-stream-1"; String expandedStreamId = "expanded-stream"; AtomicInteger expandCallCount = new AtomicInteger(); StreamExpander expander = (sg, isd) -> { expandCallCount.incrementAndGet(); InputDescriptor expandedISD = new GenericSystemDescriptor("expanded-system", "mockFactoryClass") .getInputDescriptor(expandedStreamId, new IntegerSerde()); return sg.getInputStream(expandedISD); }; MockExpandingSystemDescriptor sd = new MockExpandingSystemDescriptor("mock-system", expander); MockInputDescriptor isd = sd.getInputDescriptor(streamId, new IntegerSerde()); StreamApplicationDescriptorImpl streamAppDesc = new StreamApplicationDescriptorImpl(appDesc -> { appDesc.getInputStream(isd); }, getConfig()); InputOperatorSpec inputOpSpec = streamAppDesc.getInputOperators().get(expandedStreamId); assertEquals(OpCode.INPUT, inputOpSpec.getOpCode()); assertEquals(1, expandCallCount.get()); assertFalse(streamAppDesc.getInputOperators().containsKey(streamId)); assertFalse(streamAppDesc.getInputDescriptors().containsKey(streamId)); assertTrue(streamAppDesc.getInputDescriptors().containsKey(expandedStreamId)); assertEquals(expandedStreamId, inputOpSpec.getStreamId()); }