package com.dhemery.publishing;
import com.dhemery.publishing.fixtures.Publication1;
import com.dhemery.publishing.fixtures.Subscriber;
import com.dhemery.publishing.fixtures.SubscribesTo1;
import org.junit.Test;
import java.lang.reflect.Method;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
public class AMethodSubscription {
@Test
public void deliversAPublication() throws NoSuchMethodException {
Publication1 publication = new Publication1();
Subscriber subscriber = new SubscribesTo1("method");
Method method = subscriber.getClass().getDeclaredMethod("method", Publication1.class);
Subscription subscription = new MethodSubscription(subscriber, method);
subscription.deliver(publication);
assertThat(subscriber.deliveriesOfType(Publication1.class), is(1));
assertThat(subscriber.deliveriesByMethod("method"), is(1));
}
}