package com.netflix.eventbus.impl; import com.netflix.eventbus.spi.InvalidSubscriberException; import com.netflix.eventbus.spi.Subscribe; import org.junit.Test; /** * @author Nitesh Kant (nkant@netflix.com) */ public class IllegalSubscriberTests { @Test public void testMultiArgumentsSubscriber() throws Exception { EventBusImpl bus = new EventBusImpl(); Object multiArgSub = new Object() { @Subscribe public void subscribe(String s, String s1) { } }; registerInvalidSub(bus, multiArgSub, "Subscriber with two arguments not invalid!"); } @Test public void testIllegalBatchSubscriber() throws Exception { EventBusImpl bus = new EventBusImpl(); Object multiArgSub = new Object() { @Subscribe(batchingStrategy = Subscribe.BatchingStrategy.Age) public void subscribe(String s) { } }; registerInvalidSub(bus, multiArgSub, "Batching subscriber with non-iterable argument not invalid!"); } @Test public void testNoBatchAgeSubscriber() throws Exception { EventBusImpl bus = new EventBusImpl(); Object multiArgSub = new Object() { @Subscribe(batchingStrategy = Subscribe.BatchingStrategy.Age, batchSize = 100) public void subscribe(Iterable s) { } }; registerInvalidSub(bus, multiArgSub, "Batching subscriber with no batch age not invalid!"); } @Test public void testNoBatchSizeSubscriber() throws Exception { EventBusImpl bus = new EventBusImpl(); Object multiArgSub = new Object() { @Subscribe(batchingStrategy = Subscribe.BatchingStrategy.SizeOrAge, batchAge = 100) public void subscribe(Iterable s) { } }; registerInvalidSub(bus, multiArgSub, "Batching subscriber with no batch age not invalid!"); } private void registerInvalidSub(EventBusImpl bus, Object multiArgSub, String errorMessage) throws InvalidSubscriberException { try { bus.registerSubscriber(multiArgSub); throw new AssertionError(errorMessage); } catch (InvalidSubscriberException e) { // expected. } } }