private void verifyVersionedSemantics(final KTableKTableJoinNode<?, ?, ?, ?> joinNode, final boolean expectedValueLeft, final boolean expectedValueRight) {
        final ProcessorSupplier<?, ?, ?, ?> thisProcessorSupplier = joinNode.thisProcessorParameters().processorSupplier();
        assertInstanceOf(KTableKTableAbstractJoin.class, thisProcessorSupplier);
        final KTableKTableAbstractJoin<?, ?, ?, ?> thisJoin = (KTableKTableAbstractJoin<?, ?, ?, ?>) thisProcessorSupplier;
        assertEquals(expectedValueLeft, thisJoin.isUseVersionedSemantics());

        final ProcessorSupplier<?, ?, ?, ?> otherProcessorSupplier = joinNode.otherProcessorParameters().processorSupplier();
        assertInstanceOf(KTableKTableAbstractJoin.class, otherProcessorSupplier);
        final KTableKTableAbstractJoin<?, ?, ?, ?> otherJoin = (KTableKTableAbstractJoin<?, ?, ?, ?>) otherProcessorSupplier;
        assertEquals(expectedValueRight, otherJoin.isUseVersionedSemantics());
    }
The join node has two parents and the graph looks like:
root ---> source (t1)
source ---> map , windowed-4, join
map ---> windowed-3, join
streams/src/test/java/org/apache/kafka/streams/kstream/internals/InternalStreamsBuilderTest.java