### Question:
TransactionResponseBuilder { @NonNull public TransactionResponse build() { checkArgument(id != null && !id.isEmpty(), "Request id must be set"); checkArgument(outcome != null, "Outcome must be set"); return new TransactionResponse(id, card, outcome, outcomeMessage, amounts, responseCode, references, paymentMethod); } TransactionResponseBuilder(String requestId); @NonNull TransactionResponseBuilder withDefaultsFrom(TransactionResponse transactionResponse); @NonNull TransactionResponseBuilder approve(); @NonNull TransactionResponseBuilder approve(Amounts processedAmounts, String... paymentMethod); @NonNull TransactionResponseBuilder decline(String declineMessage); @NonNull TransactionResponseBuilder withCard(Card card); @NonNull TransactionResponseBuilder withOutcomeMessage(String outcomeMessage); @NonNull TransactionResponseBuilder withResponseCode(String responseCode); @NonNull TransactionResponseBuilder withReference(String key, T... values); @NonNull TransactionResponseBuilder withReferences(AdditionalData references); boolean isValid(); @NonNull TransactionResponse build();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void shouldThrowIllegalArgumentIfOutcomeNotSet() throws Exception { new TransactionResponseBuilder("1234").build(); }