#113 Event Driven Architecture
Adds various changes including : - Fixes to Javadoc - Test refactoring and improvements - Refactored EventDispatcher to be immutable - Removed DynamicRouter interface since it not needed - Renamed Channel to a more appropriate name - Handler
This commit is contained in:
@ -0,0 +1,24 @@
|
||||
package com.iluwatar.eda.event;
|
||||
|
||||
import com.iluwatar.eda.model.User;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* {@link UserCreatedEventTest} tests and verifies {@link Event} behaviour.
|
||||
*/
|
||||
public class UserCreatedEventTest {
|
||||
|
||||
/**
|
||||
* This unit test should correctly return the {@link Event} class type when calling the
|
||||
* {@link Event#getType() getType} method.
|
||||
*/
|
||||
@Test
|
||||
public void testGetEventType() {
|
||||
User user = new User("iluwatar");
|
||||
UserCreatedEvent userCreatedEvent = new UserCreatedEvent(user);
|
||||
assertEquals(UserCreatedEvent.class, userCreatedEvent.getType());
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package com.iluwatar.eda.framework;
|
||||
|
||||
import com.iluwatar.eda.framework.EventDispatcher;
|
||||
import com.iluwatar.eda.event.UserCreatedEvent;
|
||||
import com.iluwatar.eda.event.UserUpdatedEvent;
|
||||
import com.iluwatar.eda.handler.UserCreatedEventHandler;
|
||||
import com.iluwatar.eda.handler.UserUpdatedEventHandler;
|
||||
import com.iluwatar.eda.model.User;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
/**
|
||||
* Event Dispatcher unit tests to assert and verify correct event dispatcher behaviour
|
||||
*/
|
||||
public class EventDispatcherTest {
|
||||
|
||||
/**
|
||||
* This unit test should register events and event handlers correctly with the event dispatcher
|
||||
* and events should be dispatched accordingly.
|
||||
*/
|
||||
@Test
|
||||
public void testEventDriverPattern() {
|
||||
|
||||
EventDispatcher dispatcher = spy(new EventDispatcher());
|
||||
UserCreatedEventHandler userCreatedEventHandler = spy(new UserCreatedEventHandler());
|
||||
UserUpdatedEventHandler userUpdatedEventHandler = spy(new UserUpdatedEventHandler());
|
||||
dispatcher.registerChannel(UserCreatedEvent.class, userCreatedEventHandler);
|
||||
dispatcher.registerChannel(UserUpdatedEvent.class, userUpdatedEventHandler);
|
||||
|
||||
User user = new User("iluwatar");
|
||||
|
||||
UserCreatedEvent userCreatedEvent = new UserCreatedEvent(user);
|
||||
UserUpdatedEvent userUpdatedEvent = new UserUpdatedEvent(user);
|
||||
|
||||
//fire a userCreatedEvent and verify that userCreatedEventHandler has been invoked.
|
||||
dispatcher.onEvent(userCreatedEvent);
|
||||
verify(userCreatedEventHandler).onEvent(userCreatedEvent);
|
||||
verify(dispatcher).onEvent(userCreatedEvent);
|
||||
|
||||
//fire a userCreatedEvent and verify that userUpdatedEventHandler has been invoked.
|
||||
dispatcher.onEvent(userUpdatedEvent);
|
||||
verify(userUpdatedEventHandler).onEvent(userUpdatedEvent);
|
||||
verify(dispatcher).onEvent(userUpdatedEvent);
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user