### Question:
PreTransactionModel extends BaseStageModel { public void addNewBasket(Basket basket) { checkNotNull(basket, "Basket must not be null"); checkNotEmpty(basket.getBasketItems(), "At least one basket item must be set"); if (basket.getTotalBasketValue() < 0) { throw new IllegalArgumentException("Total basket value must be greater than or equal zero"); } flowResponse.addNewBasket(basket); amountsModifier.offsetBaseAmount(basket.getTotalBasketValue()); } private  PreTransactionModel(Activity activity, @NonNull TransactionRequest transactionRequest); private  PreTransactionModel(ClientCommunicator clientCommunicator, @NonNull TransactionRequest transactionRequest,
                                InternalData senderInternalData); @NonNull static PreTransactionModel fromActivity(Activity activity); @NonNull static PreTransactionModel fromService(ClientCommunicator clientCommunicator, TransactionRequest request,
                                                  InternalData senderInternalData); @NonNull TransactionRequest getTransactionRequest(); void changeCurrency(String currency, double exchangeRate); void setAdditionalAmount(String identifier, long amount); void setAdditionalAmountAsBaseFraction(String identifier, float fraction); @SafeVarargs final void addRequestData(String key, T... values); void addNewBasket(Basket basket); void applyDiscountsToBasket(String basketId, List<BasketItem> basketItems, String paymentMethod); void setAmountsPaid(Amounts amountsPaid, String paymentMethod); void setPaymentReferences(AdditionalData paymentReferences); void addOrUpdateCustomerDetails(Customer customer); void sendResponse(); void skip(); @Override @NonNull String getRequestJson();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionForNegativeNewBasketValue() throws Exception { Basket newBasket = new Basket("newBasket", new BasketItemBuilder().withLabel("item").withAmount(-200).build()); preTransactionModel.addNewBasket(newBasket); }