### Question:
BasketItemModifierBuilder { @NonNull public BasketItemModifier build() { checkNotEmpty(name, "Name must be set"); checkNotEmpty(type, "Type must be set"); checkArgument(amount != null || percentage != null, "Either amount or percentage must be set"); return new BasketItemModifier(id, name, type, amount, percentage); } BasketItemModifierBuilder(@NonNull String name, @NonNull String type); @NonNull BasketItemModifierBuilder withId(String id); @NonNull BasketItemModifierBuilder withFractionalAmount(float amount); BasketItemModifierBuilder withAmount(long amount); BasketItemModifierBuilder withPercentage(float percentage); @NonNull BasketItemModifier build();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionIfNoAmountOrPercentage() throws Exception { new BasketItemModifierBuilder("bananas", "type") .build(); }