### Question:
JoinNode extends PlanNode { @Override public Schema getSchema() { return this.schema; } JoinNode(@JsonProperty("id") final PlanNodeId id,
                  @JsonProperty("type") final Type type,
                  @JsonProperty("left") final PlanNode left,
                  @JsonProperty("right") final PlanNode right,
                  @JsonProperty("leftKeyFieldName") final String leftKeyFieldName,
                  @JsonProperty("rightKeyFieldName") final String rightKeyFieldName,
                  @JsonProperty("leftAlias") final String leftAlias,
                  @JsonProperty("rightAlias") final String rightAlias); @Override Schema getSchema(); @Override Field getKeyField(); @Override List<PlanNode> getSources(); @Override R accept(PlanVisitor<C, R> visitor, C context); PlanNode getLeft(); PlanNode getRight(); String getLeftKeyFieldName(); String getRightKeyFieldName(); String getLeftAlias(); String getRightAlias(); Type getType(); boolean isLeftJoin(); @Override SchemaKStream buildStream(final StreamsBuilder builder,
                                   final KsqlConfig ksqlConfig,
                                   final KafkaTopicClient kafkaTopicClient,
                                   final FunctionRegistry functionRegistry,
                                   final Map<String, Object> props,
                                   final SchemaRegistryClient schemaRegistryClient);  }### Answer:
@Test public void shouldHaveAllFieldsFromJoinedInputs() { setupTopicClientExpectations(1, 1); buildJoin(); final MetaStore metaStore = MetaStoreFixture.getNewMetaStore(); final StructuredDataSource source1 = metaStore.getSource("TEST1"); final StructuredDataSource source2 = metaStore.getSource("TEST2"); final Set<String> expected = source1.getSchema() .fields().stream() .map(field -> "T1."+field.name()).collect(Collectors.toSet()); expected.addAll(source2.getSchema().fields().stream().map(field -> "T2." + field.name()).collect(Collectors.toSet())); final Set<String> fields = stream.getSchema().fields().stream().map(Field::name).collect(Collectors.toSet()); assertThat(fields, equalTo(expected)); }