package com.tddinaction.mockobjects; import static org.easymock.EasyMock.expect; import static org.easymock.classextension.EasyMock.createMock; import static org.easymock.classextension.EasyMock.replay; import static org.easymock.classextension.EasyMock.verify; import static org.junit.Assert.assertEquals; import org.junit.Test; public class OrderProcessorEasymockTest { @Test public void testOrderProcessorWithEasyMock() { // 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); // record expected collaboration for the PricingService PricingService ps = createMock(PricingService.class); expect(ps.getDiscountPercentage(customer, product)) .andReturn(discount); replay(ps); // act OrderProcessor processor = new OrderProcessor(); processor.setPricingService(ps); processor.process(new Order(customer, product)); // assert assertEquals(expectedBalance, customer.getBalance(), 0.001f); verify(ps); } }