forked from iluwatar/java-design-patterns
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
iluwatar#113 Event Driven Architecture
Adds unit test to assert and verify pattern behaviour
- Loading branch information
cfarrugia
committed
Nov 28, 2015
1 parent
e1c0731
commit 3ad3602
Showing
4 changed files
with
61 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,7 +15,6 @@ public UserCreatedEvent(User user) { | |
this.user = user; | ||
} | ||
|
||
|
||
public User getUser() { | ||
return user; | ||
} | ||
|
47 changes: 47 additions & 0 deletions
47
event-driven-architecture/src/test/java/EventDrivenTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
import com.iluwatar.eda.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; | ||
|
||
import static org.junit.Assert.assertEquals; | ||
|
||
public class EventDrivenTest { | ||
|
||
@Test | ||
public void testEventDriverPattern(){ | ||
|
||
EventDispatcher dispatcher = spy(new EventDispatcher()); | ||
UserCreatedEventHandler userCreatedEventHandler = new UserCreatedEventHandler(); | ||
UserUpdatedEventHandler userUpdatedEventHandler = new UserUpdatedEventHandler(); | ||
dispatcher.registerChannel(UserCreatedEvent.class, userCreatedEventHandler); | ||
dispatcher.registerChannel(UserUpdatedEvent.class, userUpdatedEventHandler); | ||
|
||
assertEquals("Two handlers must be registered", 2, dispatcher.getHandlers().size()); | ||
assertEquals("UserCreatedEvent must return the UserCreatedEventHandler", | ||
userCreatedEventHandler, | ||
(UserCreatedEventHandler)dispatcher.getHandlers().get(UserCreatedEvent.class)); | ||
assertEquals("UserUpdatedEvent must be registered to the UserUpdatedEventHandler", | ||
userUpdatedEventHandler, | ||
(UserUpdatedEventHandler)dispatcher.getHandlers().get(UserUpdatedEvent.class)); | ||
|
||
User user = new User("iluwatar"); | ||
|
||
UserCreatedEvent userCreatedEvent = new UserCreatedEvent(user); | ||
UserUpdatedEvent userUpdatedEvent = new UserUpdatedEvent(user); | ||
dispatcher.dispatch(userCreatedEvent); | ||
dispatcher.dispatch(userUpdatedEvent); | ||
|
||
//verify that the events have been dispatched | ||
verify(dispatcher).dispatch(userCreatedEvent); | ||
verify(dispatcher).dispatch(userUpdatedEvent); | ||
|
||
} | ||
} |