@Test
  public void one_to_many_join() {
    Record joined =
        RecordJoins.join(authors)
            .on(id)
            .to(authorId)
            .oneToMany(books, authored)
            .filter(authorName.is("Alan Goodyear"))
            .findFirst()
            .get();

    assertThat(authored.extract(joined), hasItems(cromulenceOfTruths, amorousEncounters));
  }
  @Test
  public void three_way_join() {
    List<Record> joined =
        RecordJoins.join(RecordJoins.join(books).on(authorId).to(id).manyToOne(authors))
            .on(publisherId)
            .to(id)
            .manyToOne(publishers)
            .map(r -> r.select(publisherName, authorName, bookName))
            .filter(authorName.is("Alan Goodyear"))
            .collect(Collectors.toList());

    assertThat(
        joined,
        CoreMatchers.hasItems(
            $$(
                bookName.of("Amorous Encounters"),
                authorName.of("Alan Goodyear"),
                publisherName.of("Bills And Moon")),
            $$(
                bookName.of("The Cromulence Of Truths"),
                authorName.of("Alan Goodyear"),
                publisherName.of("Servo"))));
  }