package br.com.caelum.vraptor.restbucks; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.math.BigDecimal; import java.util.Calendar; import org.junit.Test; public class OrderTest { @Test public void whenOrderIsPaidMoreThan10SecondsAgoItIsReady() { Payment payment = mock(Payment.class); when(payment.getAmount()).thenReturn(BigDecimal.ZERO); when(payment.getCreatedAt()).thenReturn(someSecondsAgo(15)); Order o = new Order(); o.pay(payment); assertThat(o.isReady(), is(true)); } @Test public void whenOrderIsPaidLessThan10SecondsAgoItIsNotReadyYet() { Payment payment = mock(Payment.class); when(payment.getAmount()).thenReturn(BigDecimal.ZERO); when(payment.getCreatedAt()).thenReturn(someSecondsAgo(3)); Order o = new Order(); o.pay(payment); assertThat(o.isReady(), is(false)); } private Calendar someSecondsAgo(int secs) { Calendar fifteenSecondsAgo = Calendar.getInstance(); fifteenSecondsAgo.add(Calendar.SECOND, -secs); return fifteenSecondsAgo; } }