Search in sources :

Example 16 with Event

use of org.eclipse.smarthome.core.events.Event in project smarthome by eclipse.

the class GroupItemTest method setUp.

@Before
public void setUp() {
    initMocks(this);
    registerVolatileStorageService();
    publisher = event -> events.add(event);
    itemRegistry = getService(ItemRegistry.class);
    assertNotNull(itemRegistry);
    registerService(new EventSubscriber() {

        @Override
        public void receive(Event event) {
            events.add(event);
        }

        @Override
        public Set<String> getSubscribedEventTypes() {
            HashSet<String> hs = new HashSet<>();
            hs.add(ItemUpdatedEvent.TYPE);
            return hs;
        }

        @Override
        public EventFilter getEventFilter() {
            return null;
        }
    });
    when(unitProvider.getUnit(Temperature.class)).thenReturn(Units.CELSIUS);
    groupFunctionHelper = new GroupFunctionHelper();
    itemStateConverter = new ItemStateConverterImpl();
    ((ItemStateConverterImpl) itemStateConverter).setUnitProvider(unitProvider);
}
Also used : EventSubscriber(org.eclipse.smarthome.core.events.EventSubscriber) HashSet(java.util.HashSet) Set(java.util.Set) GroupItemStateChangedEvent(org.eclipse.smarthome.core.items.events.GroupItemStateChangedEvent) ItemUpdatedEvent(org.eclipse.smarthome.core.items.events.ItemUpdatedEvent) Event(org.eclipse.smarthome.core.events.Event) GroupFunctionHelper(org.eclipse.smarthome.core.internal.items.GroupFunctionHelper) ItemStateConverterImpl(org.eclipse.smarthome.core.internal.items.ItemStateConverterImpl) EventFilter(org.eclipse.smarthome.core.events.EventFilter) HashSet(java.util.HashSet) Before(org.junit.Before)

Example 17 with Event

use of org.eclipse.smarthome.core.events.Event in project smarthome by eclipse.

the class GroupItemTest method assertThatGroupItemPostsEventsForChangesCorrectly.

@Test
public void assertThatGroupItemPostsEventsForChangesCorrectly() {
    // from ItemEventFactory.GROUPITEM_STATE_CHANGED_EVENT_TOPIC
    String GROUPITEM_STATE_CHANGED_EVENT_TOPIC = "smarthome/items/{itemName}/{memberName}/statechanged";
    events.clear();
    GroupItem groupItem = new GroupItem("root", new SwitchItem("mySwitch"), new GroupFunction.Equality());
    groupItem.setItemStateConverter(itemStateConverter);
    SwitchItem member = new SwitchItem("member1");
    groupItem.addMember(member);
    groupItem.setEventPublisher(publisher);
    State oldGroupState = groupItem.getState();
    // State changes -> one change event is fired
    member.setState(OnOffType.ON);
    waitForAssert(() -> assertThat(events.size(), is(1)));
    List<Event> changes = events.stream().filter(it -> it instanceof GroupItemStateChangedEvent).collect(Collectors.toList());
    assertThat(changes.size(), is(1));
    GroupItemStateChangedEvent change = (GroupItemStateChangedEvent) changes.get(0);
    assertTrue(change.getItemName().equals(groupItem.getName()));
    assertTrue(change.getMemberName().equals(member.getName()));
    assertTrue(change.getTopic().equals(GROUPITEM_STATE_CHANGED_EVENT_TOPIC.replace("{memberName}", member.getName()).replace("{itemName}", groupItem.getName())));
    assertTrue(change.getItemState().equals(groupItem.getState()));
    assertTrue(change.getOldItemState().equals(oldGroupState));
    events.clear();
    // State doesn't change -> no events are fired
    member.setState(member.getState());
    assertThat(events.size(), is(0));
}
Also used : ArithmeticGroupFunction(org.eclipse.smarthome.core.library.types.ArithmeticGroupFunction) SwitchItem(org.eclipse.smarthome.core.library.items.SwitchItem) CoreMatchers(org.hamcrest.CoreMatchers) MockitoAnnotations.initMocks(org.mockito.MockitoAnnotations.initMocks) RollershutterItem(org.eclipse.smarthome.core.library.items.RollershutterItem) NumberItem(org.eclipse.smarthome.core.library.items.NumberItem) Mock(org.mockito.Mock) OnOffType(org.eclipse.smarthome.core.library.types.OnOffType) UnDefType(org.eclipse.smarthome.core.types.UnDefType) EventFilter(org.eclipse.smarthome.core.events.EventFilter) EventSubscriber(org.eclipse.smarthome.core.events.EventSubscriber) GroupFunctionDTO(org.eclipse.smarthome.core.items.dto.GroupFunctionDTO) GroupFunctionHelper(org.eclipse.smarthome.core.internal.items.GroupFunctionHelper) HashSet(java.util.HashSet) ColorItem(org.eclipse.smarthome.core.library.items.ColorItem) GroupItemStateChangedEvent(org.eclipse.smarthome.core.items.events.GroupItemStateChangedEvent) Temperature(javax.measure.quantity.Temperature) Quantity(javax.measure.Quantity) Pressure(javax.measure.quantity.Pressure) ItemStateConverterImpl(org.eclipse.smarthome.core.internal.items.ItemStateConverterImpl) QuantityType(org.eclipse.smarthome.core.library.types.QuantityType) CoreItemFactory(org.eclipse.smarthome.core.library.CoreItemFactory) StringType(org.eclipse.smarthome.core.library.types.StringType) LinkedList(java.util.LinkedList) State(org.eclipse.smarthome.core.types.State) Dimensionless(javax.measure.quantity.Dimensionless) Before(org.junit.Before) JavaOSGiTest(org.eclipse.smarthome.test.java.JavaOSGiTest) RefreshType(org.eclipse.smarthome.core.types.RefreshType) Set(java.util.Set) EventPublisher(org.eclipse.smarthome.core.events.EventPublisher) ItemUpdatedEvent(org.eclipse.smarthome.core.items.events.ItemUpdatedEvent) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) DecimalType(org.eclipse.smarthome.core.library.types.DecimalType) Collectors(java.util.stream.Collectors) RawType(org.eclipse.smarthome.core.library.types.RawType) IsCollectionWithSize.hasSize(org.hamcrest.collection.IsCollectionWithSize.hasSize) List(java.util.List) HSBType(org.eclipse.smarthome.core.library.types.HSBType) Ignore(org.junit.Ignore) PercentType(org.eclipse.smarthome.core.library.types.PercentType) Units(tec.uom.se.unit.Units) ArithmeticGroupFunction(org.eclipse.smarthome.core.library.types.ArithmeticGroupFunction) UnitProvider(org.eclipse.smarthome.core.i18n.UnitProvider) DimmerItem(org.eclipse.smarthome.core.library.items.DimmerItem) Assert(org.junit.Assert) Event(org.eclipse.smarthome.core.events.Event) Collections(java.util.Collections) State(org.eclipse.smarthome.core.types.State) GroupItemStateChangedEvent(org.eclipse.smarthome.core.items.events.GroupItemStateChangedEvent) GroupItemStateChangedEvent(org.eclipse.smarthome.core.items.events.GroupItemStateChangedEvent) ItemUpdatedEvent(org.eclipse.smarthome.core.items.events.ItemUpdatedEvent) Event(org.eclipse.smarthome.core.events.Event) SwitchItem(org.eclipse.smarthome.core.library.items.SwitchItem) JavaOSGiTest(org.eclipse.smarthome.test.java.JavaOSGiTest) Test(org.junit.Test)

Example 18 with Event

use of org.eclipse.smarthome.core.events.Event in project smarthome by eclipse.

the class ThingEventFactoryTest method testCreateEvent_ThingStatusInfoEvent.

@Test
public void testCreateEvent_ThingStatusInfoEvent() throws Exception {
    Event event = factory.createEvent(ThingStatusInfoEvent.TYPE, THING_STATUS_EVENT_TOPIC, THING_STATUS_EVENT_PAYLOAD, null);
    assertThat(event, is(instanceOf(ThingStatusInfoEvent.class)));
    ThingStatusInfoEvent statusEvent = (ThingStatusInfoEvent) event;
    assertEquals(ThingStatusInfoEvent.TYPE, statusEvent.getType());
    assertEquals(THING_STATUS_EVENT_TOPIC, statusEvent.getTopic());
    assertEquals(THING_STATUS_EVENT_PAYLOAD, statusEvent.getPayload());
    assertEquals(THING_STATUS_INFO, statusEvent.getStatusInfo());
    assertEquals(THING_UID, statusEvent.getThingUID());
}
Also used : Event(org.eclipse.smarthome.core.events.Event) JavaOSGiTest(org.eclipse.smarthome.test.java.JavaOSGiTest) Test(org.junit.Test)

Example 19 with Event

use of org.eclipse.smarthome.core.events.Event in project smarthome by eclipse.

the class FirmwareUpdateServiceTest method testGetFirmwareStatusInfo_firmwareProviderAddedLate.

@Test
public void testGetFirmwareStatusInfo_firmwareProviderAddedLate() {
    assertThat(firmwareUpdateService.getFirmwareStatusInfo(THING3_UID), is(unknownInfo));
    FirmwareProvider firmwareProvider2 = mock(FirmwareProvider.class);
    when(firmwareProvider2.getFirmware(eq(FWALPHA_EN.getUID()), any(Locale.class))).thenReturn(FWALPHA_EN);
    when(firmwareProvider2.getFirmwares(any(ThingTypeUID.class), any(Locale.class))).thenAnswer(invocation -> {
        ThingTypeUID thingTypeUID = (ThingTypeUID) invocation.getArguments()[0];
        if (THING_TYPE_UID_WITHOUT_FW.equals(thingTypeUID) || THING_TYPE_UID1.equals(thingTypeUID)) {
            return Collections.emptySet();
        } else {
            return Collections.singleton(FWALPHA_EN);
        }
    });
    firmwareRegistry.addFirmwareProvider(firmwareProvider2);
    assertThat(firmwareUpdateService.getFirmwareStatusInfo(THING3_UID), is(upToDateInfo));
    // verify that the corresponding events are sent
    ArgumentCaptor<Event> eventCaptor = ArgumentCaptor.forClass(Event.class);
    verify(mockPublisher, times(2)).post(eventCaptor.capture());
    assertFirmwareStatusInfoEvent(THING3_UID, eventCaptor.getAllValues().get(0), unknownInfo);
    assertFirmwareStatusInfoEvent(THING3_UID, eventCaptor.getAllValues().get(1), upToDateInfo);
}
Also used : Locale(java.util.Locale) Event(org.eclipse.smarthome.core.events.Event) ThingTypeUID(org.eclipse.smarthome.core.thing.ThingTypeUID) JavaOSGiTest(org.eclipse.smarthome.test.java.JavaOSGiTest) Test(org.junit.Test)

Example 20 with Event

use of org.eclipse.smarthome.core.events.Event in project smarthome by eclipse.

the class RuleHumanLanguageInterpreter method interpret.

@Override
public String interpret(Locale locale, String text) throws InterpretationException {
    Event event = ItemEventFactory.createCommandEvent(itemName, new StringType(text));
    eventPublisher.post(event);
    return null;
}
Also used : StringType(org.eclipse.smarthome.core.library.types.StringType) Event(org.eclipse.smarthome.core.events.Event)

Aggregations

Event (org.eclipse.smarthome.core.events.Event)30 JavaOSGiTest (org.eclipse.smarthome.test.java.JavaOSGiTest)19 Test (org.junit.Test)19 EventSubscriber (org.eclipse.smarthome.core.events.EventSubscriber)15 EventPublisher (org.eclipse.smarthome.core.events.EventPublisher)14 Set (java.util.Set)13 EventFilter (org.eclipse.smarthome.core.events.EventFilter)13 LinkedList (java.util.LinkedList)11 Collections (java.util.Collections)9 HashSet (java.util.HashSet)9 List (java.util.List)8 Collectors (java.util.stream.Collectors)8 Ignore (org.junit.Ignore)8 GroupFunctionHelper (org.eclipse.smarthome.core.internal.items.GroupFunctionHelper)7 ItemStateConverterImpl (org.eclipse.smarthome.core.internal.items.ItemStateConverterImpl)7 GroupItemStateChangedEvent (org.eclipse.smarthome.core.items.events.GroupItemStateChangedEvent)7 ItemUpdatedEvent (org.eclipse.smarthome.core.items.events.ItemUpdatedEvent)7 SwitchItem (org.eclipse.smarthome.core.library.items.SwitchItem)7 OnOffType (org.eclipse.smarthome.core.library.types.OnOffType)7 StringType (org.eclipse.smarthome.core.library.types.StringType)7