- @Test
- public void testDataChanged(){
- new JavaTestKit(getSystem()) {{
- final MockDataChangeListener listener = new MockDataChangeListener();
- final Props props = DataChangeListener.props(CompositeModel.createTestContext(),listener,CompositeModel.FAMILY_PATH );
- final ActorRef subject =
- getSystem().actorOf(props, "testDataChanged");
-
- new Within(duration("1 seconds")) {
- protected void run() {
-
- subject.tell(
- new DataChanged(CompositeModel.createTestContext(),new MockDataChangedEvent()).toSerializable(),
- getRef());
-
- final Boolean out = new ExpectMsg<Boolean>("dataChanged") {
- // do not put code outside this method, will run afterwards
- protected Boolean match(Object in) {
- if (in.getClass().equals(DataChangedReply.SERIALIZABLE_CLASS)) {
-
- return true;
- } else {
- throw noMatch();
- }
- }
- }.get(); // this extracts the received message
-
- assertTrue(out);
- assertTrue(listener.gotIt());
- assertNotNull(listener.getChange().getCreatedData());
- // Will wait for the rest of the 3 seconds
- expectNoMsg();
- }
+ subject.tell(new DataChanged(mockChangeEvent2), getRef());
+ expectMsgClass(DataChangedReply.class);