package com.tddinaction.mockobjects; import org.junit.Test; import static org.junit.Assert.*; public class OrderProcessorTest { @Test public void testOrderProcessorWithMockObject() { // arrange float initialBalance = 100.0f; float listPrice = 30.0f; float discount = 10.0f; float expectedBalance = initialBalance - (listPrice * (1 - discount / 100)); Customer customer = new Customer(initialBalance); Product product = new Product("TDD in Action", listPrice); OrderProcessor processor = new OrderProcessor(); processor.setPricingService(new MockPricingService(discount)); // act processor.process(new Order(customer, product)); // assert assertEquals(expectedBalance, customer.getBalance(), 0.001f); } }