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);
}
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));
}
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());
}
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);
}
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;
}
Aggregations