Search in sources :

Example 26 with EventElement

use of com.mvp4g.rebind.config.element.EventElement in project mvp4g by mvp4g.

the class Mvp4gConfigurationTest method testStartEventWithParameter.

@Test
public void testStartEventWithParameter() throws InvalidMvp4gConfigurationException {
    EventElement e = newEvent("start");
    e.setEventObjectClass(new String[] { Object.class.getCanonicalName() });
    events.add(e);
    StartElement start = configuration.getStart();
    start.setPresenter("startPresenter");
    start.setEventType("start");
    try {
        configuration.validateStart();
        fail();
    } catch (InvalidMvp4gConfigurationException ex) {
        assertEquals("Start: Start event start can't have any object associated with it.", ex.getMessage());
    }
    events.clear();
    e = newEvent("start");
    events.add(e);
    configuration.validateStart();
}
Also used : StartElement(com.mvp4g.rebind.config.element.StartElement) EventElement(com.mvp4g.rebind.config.element.EventElement) InvalidMvp4gConfigurationException(com.mvp4g.rebind.exception.InvalidMvp4gConfigurationException) OneObject(com.mvp4g.rebind.test_tools.OneObject) Test(org.junit.Test)

Example 27 with EventElement

use of com.mvp4g.rebind.config.element.EventElement in project mvp4g by mvp4g.

the class Mvp4gConfigurationTest method testEventHandlerRemove.

@Test
public void testEventHandlerRemove() throws InvalidMvp4gConfigurationException {
    ViewElement view = newView(SimpleView01.class, "view");
    views.add(view);
    PresenterElement presenter1 = newPresenter(SimplePresenter01.class, "presenter1");
    presenter1.setView("view");
    presenters.add(presenter1);
    PresenterElement presenter2 = newPresenter(SimplePresenter02.class, "presenter2");
    presenter2.setView("view");
    presenters.add(presenter2);
    PresenterElement presenter3 = newPresenter(SimplePresenter03.class, "presenter3");
    presenter3.setView("view");
    presenter3.setMultiple("true");
    presenters.add(presenter3);
    PresenterElement presenter4 = newPresenter(SimplePresenter04.class, "presenter4");
    presenter4.setView("view");
    presenters.add(presenter4);
    EventHandlerElement handler1 = newEventHandler(SimpleEventHandler01.class, "handler1");
    eventHandlers.add(handler1);
    EventHandlerElement handler2 = newEventHandler(SimpleEventHandler02.class, "handler2");
    eventHandlers.add(handler2);
    EventHandlerElement handler3 = newEventHandler(SimpleEventHandler03.class, "handler3");
    handler3.setMultiple("true");
    eventHandlers.add(handler3);
    EventHandlerElement handler4 = newEventHandler(SimpleEventHandler04.class, "handler4");
    eventHandlers.add(handler4);
    EventElement event = newEvent("testEvent");
    event.setHandlers(new String[] { "presenter1", "handler1" });
    event.setGenerate(new String[] { "presenter3", "handler3" });
    event.setBinds(new String[] { "presenter4", "handler4" });
    events.add(event);
    setEventBus();
    assertEquals(4, presenters.size());
    assertTrue(presenters.contains(presenter1));
    assertTrue(presenters.contains(presenter2));
    assertEquals(4, eventHandlers.size());
    assertTrue(eventHandlers.contains(handler1));
    assertTrue(eventHandlers.contains(handler2));
    configuration.validateEventHandlers();
    assertEquals(3, presenters.size());
    assertTrue(presenters.contains(presenter1));
    assertFalse(presenters.contains(presenter2));
    assertEquals(3, eventHandlers.size());
    assertTrue(eventHandlers.contains(handler1));
    assertFalse(eventHandlers.contains(handler2));
    presenter2.setMultiple(Boolean.TRUE.toString());
    presenters.add(presenter2);
    handler2.setMultiple(Boolean.TRUE.toString());
    eventHandlers.add(handler2);
    assertEquals(4, presenters.size());
    assertTrue(presenters.contains(presenter1));
    assertTrue(presenters.contains(presenter2));
    assertEquals(4, eventHandlers.size());
    assertTrue(eventHandlers.contains(handler1));
    assertTrue(eventHandlers.contains(handler2));
    configuration.validateEventHandlers();
    assertEquals(4, presenters.size());
    assertTrue(presenters.contains(presenter1));
    assertTrue(presenters.contains(presenter2));
    assertEquals(4, eventHandlers.size());
    assertTrue(eventHandlers.contains(handler1));
    assertTrue(eventHandlers.contains(handler2));
}
Also used : EventElement(com.mvp4g.rebind.config.element.EventElement) EventHandlerElement(com.mvp4g.rebind.config.element.EventHandlerElement) ViewElement(com.mvp4g.rebind.config.element.ViewElement) PresenterElement(com.mvp4g.rebind.config.element.PresenterElement) Test(org.junit.Test)

Example 28 with EventElement

use of com.mvp4g.rebind.config.element.EventElement in project mvp4g by mvp4g.

the class Mvp4gConfigurationTest method testSameActivateDeactivate.

@Test
public void testSameActivateDeactivate() {
    EventBusElement eventBus = new EventBusElement(EventBusWithLookup.class.getName(), BaseEventBus.class.getName(), false);
    configuration.setEventBus(eventBus);
    EventElement event1 = newEvent("event1");
    event1.setActivate(new String[] { "activate" });
    event1.setDeactivate(new String[] { "activate" });
    events.add(event1);
    try {
        configuration.validateEventHandlers();
        fail();
    } catch (InvalidMvp4gConfigurationException e) {
        assertTrue(e.getMessage().contains("an event can't activate and deactivate the same handler: activate."));
    }
}
Also used : EventElement(com.mvp4g.rebind.config.element.EventElement) InvalidMvp4gConfigurationException(com.mvp4g.rebind.exception.InvalidMvp4gConfigurationException) EventBusElement(com.mvp4g.rebind.config.element.EventBusElement) EventBusWithLookup(com.mvp4g.client.event.EventBusWithLookup) BaseEventBus(com.mvp4g.client.event.BaseEventBus) Test(org.junit.Test)

Example 29 with EventElement

use of com.mvp4g.rebind.config.element.EventElement in project mvp4g by mvp4g.

the class Mvp4gConfigurationTest method testValidateSplitterStartPresenter.

@Test
public void testValidateSplitterStartPresenter() {
    setEventBus();
    PresenterElement presenter = newPresenter(SimplePresenter01.class, "presenter");
    configuration.getStart().setPresenter("presenter");
    presenter.setAsync("true");
    presenters.add(presenter);
    EventElement event = new EventElement();
    event.setType("event");
    event.setHandlers(new String[] { "presenter" });
    events.add(event);
    try {
        configuration.validateSplitters();
        fail();
    } catch (InvalidMvp4gConfigurationException e) {
        assertEquals("Presenter presenter: start presenter can't be loaded asynchronously. Async attribute must not be set.", e.getMessage());
    }
}
Also used : EventElement(com.mvp4g.rebind.config.element.EventElement) InvalidMvp4gConfigurationException(com.mvp4g.rebind.exception.InvalidMvp4gConfigurationException) PresenterElement(com.mvp4g.rebind.config.element.PresenterElement) Test(org.junit.Test)

Example 30 with EventElement

use of com.mvp4g.rebind.config.element.EventElement in project mvp4g by mvp4g.

the class Mvp4gConfigurationTest method testValidateSplitterTogether.

@Test
public void testValidateSplitterTogether() throws InvalidMvp4gConfigurationException {
    setEventBus();
    String splitterName = oracle.addClass(Splitters.SimpleSplitter.class).getQualifiedSourceName();
    PresenterElement presenter = newPresenter(SimplePresenter01.class, "presenter");
    presenter.setAsync(splitterName);
    presenters.add(presenter);
    PresenterElement presenterMultiple = newPresenter(SimplePresenter02.class, "presenterMultiple");
    presenterMultiple.setAsync(splitterName);
    presenterMultiple.setMultiple("true");
    presenters.add(presenterMultiple);
    EventHandlerElement eventHandler = newEventHandler(SimpleEventHandler01.class, "eventHandler");
    eventHandler.setAsync(splitterName);
    eventHandlers.add(eventHandler);
    EventHandlerElement eventHandlerMultiple = newEventHandler(SimpleEventHandler02.class, "eventHandlerMultiple");
    eventHandlerMultiple.setAsync(splitterName);
    eventHandlerMultiple.setMultiple("true");
    eventHandlers.add(eventHandlerMultiple);
    EventElement event = new EventElement();
    event.setType("event");
    event.setHandlers(new String[] { "presenter", "eventHandler", "presenterMultiple", "eventHandlerMultiple" });
    event.setBinds(new String[] { "presenter", "eventHandler", "presenterMultiple", "eventHandlerMultiple" });
    event.setActivate(new String[] { "presenter", "eventHandler", "presenterMultiple", "eventHandlerMultiple" });
    event.setDeactivate(new String[] { "presenter", "eventHandler", "presenterMultiple", "eventHandlerMultiple" });
    event.setGenerate(new String[] { "presenterMultiple", "eventHandlerMultiple" });
    events.add(event);
    configuration.validateSplitters();
    splitterName = Splitters.SimpleSplitter.class.getCanonicalName().replace(".", "_");
    assertEquals(1, configuration.getSplitters().size());
    SplitterElement splitter = configuration.getSplitters().iterator().next();
    assertEquals(splitterName, splitter.getClassName());
    assertEquals(splitterName, splitter.getName());
    assertNull(splitter.getLoader());
    assertEquals(4, splitter.getHandlers().size());
    assertTrue(splitter.getHandlers().contains(eventHandler));
    assertTrue(splitter.getHandlers().contains(presenter));
    assertTrue(splitter.getHandlers().contains(eventHandlerMultiple));
    assertTrue(splitter.getHandlers().contains(presenterMultiple));
    Map<EventElement, EventAssociation<String>> events = splitter.getEvents();
    assertEquals(1, events.size());
    EventElement key = events.keySet().iterator().next();
    assertSame(event, key);
    EventAssociation<String> association = events.get(key);
    List<String> list = Arrays.asList("eventHandler", "eventHandlerMultiple", "presenter", "presenterMultiple");
    assertCollection(list, association.getActivated());
    assertCollection(list, association.getDeactivated());
    assertCollection(list, association.getBinds());
    assertCollection(list, association.getHandlers());
    assertCollection(Arrays.asList("eventHandlerMultiple", "presenterMultiple"), association.getGenerate());
}
Also used : EventElement(com.mvp4g.rebind.config.element.EventElement) EventAssociation(com.mvp4g.rebind.config.element.EventAssociation) Splitters(com.mvp4g.rebind.test_tools.Splitters) EventHandlerElement(com.mvp4g.rebind.config.element.EventHandlerElement) SplitterElement(com.mvp4g.rebind.config.element.SplitterElement) PresenterElement(com.mvp4g.rebind.config.element.PresenterElement) Test(org.junit.Test)

Aggregations

EventElement (com.mvp4g.rebind.config.element.EventElement)56 Test (org.junit.Test)55 PresenterElement (com.mvp4g.rebind.config.element.PresenterElement)22 InvalidMvp4gConfigurationException (com.mvp4g.rebind.exception.InvalidMvp4gConfigurationException)18 OneObject (com.mvp4g.rebind.test_tools.OneObject)15 ChildModuleElement (com.mvp4g.rebind.config.element.ChildModuleElement)12 ViewElement (com.mvp4g.rebind.config.element.ViewElement)12 Modules (com.mvp4g.rebind.test_tools.Modules)12 BaseEventBus (com.mvp4g.client.event.BaseEventBus)11 EventBusElement (com.mvp4g.rebind.config.element.EventBusElement)11 EventHandlerElement (com.mvp4g.rebind.config.element.EventHandlerElement)10 EventBusWithLookup (com.mvp4g.client.event.EventBusWithLookup)8 JClassType (com.google.gwt.core.ext.typeinfo.JClassType)6 InvalidTypeException (com.mvp4g.rebind.exception.InvalidTypeException)5 TestBroadcast (com.mvp4g.rebind.test_tools.annotation.TestBroadcast)5 HistoryConverterElement (com.mvp4g.rebind.config.element.HistoryConverterElement)4 TestBroadcast2 (com.mvp4g.rebind.test_tools.annotation.TestBroadcast2)4 EventBusOk (com.mvp4g.rebind.test_tools.annotation.events.EventBusOk)4 SimpleView02 (com.mvp4g.rebind.test_tools.annotation.views.SimpleView02)4 EventBus (com.mvp4g.client.event.EventBus)3