VertxAssert.testComplete();
}
@Test
public void testEventHandler() {
final JsonArray events = Json.createArray();
map.onValueChanged(new Handler<ValueChangedEvent>() {
@Override
public void handle(ValueChangedEvent event) {
VertxAssert.assertEquals(EventType.VALUE_CHANGED, event.type());
VertxAssert.assertTrue(event.isLocal());
events.push(event);
}
});
map.onObjectChanged(new Handler<ObjectChangedEvent>() {
@Override
public void handle(ObjectChangedEvent event) {
CollaborativeStringTest.assertArraySame(events, event.events());
VertxAssert.assertEquals("a", events.<ValueChangedEvent>get(0).property());
VertxAssert.assertEquals(null, events.<ValueChangedEvent>get(0).oldValue());
VertxAssert.assertEquals(3.0, events.<ValueChangedEvent>get(0).newValue());
VertxAssert.assertEquals("a", events.<ValueChangedEvent>get(1).property());
VertxAssert.assertEquals(3.0, events.<ValueChangedEvent>get(1).oldValue());
VertxAssert.assertEquals(Json.createObject().set("a", true).set("b", 1.0), events
.<ValueChangedEvent>get(1).newValue());
VertxAssert.assertEquals("a", events.<ValueChangedEvent>get(2).property());
VertxAssert.assertEquals(Json.createObject().set("a", true).set("b", 1.0), events
.<ValueChangedEvent>get(2).oldValue());
VertxAssert.assertEquals(null, events.<ValueChangedEvent>get(2).newValue());
VertxAssert.assertEquals("x", events.<ValueChangedEvent>get(5).property());
VertxAssert.assertEquals(null, events.<ValueChangedEvent>get(5).oldValue());
VertxAssert.assertEquals(true, events.<ValueChangedEvent>get(5).newValue());
VertxAssert.testComplete();
}
});
map.set("a", 3);
map.set("a", Json.createObject().set("a", true).set("b", 1.0));
map.remove("a");
CollaborativeMap map2 = mod.createMap(null);
CollaborativeList list = mod.createList(null);
list.onValuesAdded(new Handler<ValuesAddedEvent>() {
@Override
public void handle(ValuesAddedEvent event) {
events.push(event);
}
});
list.push(map2);
map.set("c", list);
map2.onValueChanged(new Handler<ValueChangedEvent>() {
@Override
public void handle(ValueChangedEvent event) {
events.push(event);
}
});
map2.set("x", true);
}