Skip to content

Instantly share code, notes, and snippets.

@mgenov
Created January 20, 2012 14:38
Show Gist options
  • Save mgenov/1647635 to your computer and use it in GitHub Desktop.
Save mgenov/1647635 to your computer and use it in GitHub Desktop.
MessyBehaviorTest.java
public class MessyBehaviorTest {
interface Registry {
void register(Double amount);
}
class PaymentProcessingListener {
private final Registry registry;
PaymentProcessingListener(Registry registry) {
this.registry = registry;
}
public void onPaymentProcessed(Double amount) {
if (amount == 0d) {
return;
}
registry.register(amount);
}
}
@Test
public void processRegularPayment() {
Mockery mockery = new Mockery();
final Registry registry = mockery.mock(Registry.class);
mockery.checking(new Expectations() {{
oneOf(registry).register(20d);
}});
PaymentProcessingListener listener = new PaymentProcessingListener(registry);
listener.onPaymentProcessed(20d);
mockery.assertIsSatisfied();
}
@Test
public void zeroPaymentsAreNotRegistered() {
Mockery mockery = new Mockery();
Registry registry = mockery.mock(Registry.class);
PaymentProcessingListener listener = new PaymentProcessingListener(registry);
listener.onPaymentProcessed(0d);
mockery.assertIsSatisfied();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment