### Question:
RequestJoinGame extends Request { public static RequestJoinGameSyntax joinGame() { return new Builder(); } private  RequestJoinGame(Builder builder); static RequestJoinGameSyntax joinGame(); @Override Sc2Api.Request toSc2Api(); @Override ResponseType responseType(); Optional<Race> getRace(); Optional<Observer> getObserverOf(); InterfaceOptions getInterfaceOptions(); Optional<MultiplayerOptions> getMultiplayerOptions(); Optional<String> getPlayerName(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test void throwsExceptionWhenParticipantCaseIsNotSet() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> fullAccessTo(joinGame()).build()) .withMessage("participant case is required"); }
@Test void throwsExceptionIfInterfaceOptionsAreNotSet() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> joinGame().as(Race.RANDOM).use((InterfaceOptions) nothing()).build()) .withMessage("interface options are required"); }