use of org.eclipse.smarthome.core.thing.type.ThingType in project smarthome by eclipse.
the class ThingTypeI18nTest method channelsShouldBeLocalized.
@Test
public void channelsShouldBeLocalized() throws Exception {
int initialNumberOfThingTypes = thingTypeProvider.getThingTypes(null).size();
// install test bundle
Bundle bundle = SyntheticBundleInstaller.install(bundleContext, TEST_BUNDLE_NAME);
assertThat(bundle, is(notNullValue()));
Collection<ThingType> thingTypes = thingTypeProvider.getThingTypes(Locale.GERMAN);
assertThat(thingTypes.size(), is(initialNumberOfThingTypes + 2));
ThingType weatherType = thingTypes.stream().filter(it -> it.toString().equals("yahooweather:weather")).findFirst().get();
assertThat(weatherType, is(notNullValue()));
assertThat(weatherType.getChannelDefinitions().size(), is(2));
ChannelDefinition temperatureChannelDefinition = weatherType.getChannelDefinitions().stream().filter(it -> it.getId().equals("temperature")).findFirst().get();
assertThat(temperatureChannelDefinition, is(notNullValue()));
assertThat(temperatureChannelDefinition.getLabel(), is("Temperatur"));
assertThat(temperatureChannelDefinition.getDescription(), is("Aktuelle Temperatur in Grad Celsius (Metrisch) oder Fahrenheit (Imperial)."));
ChannelDefinition minTemperatureChannelDefinition = weatherType.getChannelDefinitions().stream().filter(it -> it.getId().equals("minTemperature")).findFirst().get();
assertThat(minTemperatureChannelDefinition, is(notNullValue()));
assertThat(minTemperatureChannelDefinition.getLabel(), is("Min. Temperatur"));
assertThat(minTemperatureChannelDefinition.getDescription(), is("Minimale Temperatur in Grad Celsius (Metrisch) oder Fahrenheit (Imperial)."));
}
use of org.eclipse.smarthome.core.thing.type.ThingType in project smarthome by eclipse.
the class ThingTypesTest method thingTypesShouldLoad.
@Test
public void thingTypesShouldLoad() throws Exception {
int initialNumberOfThingTypes = thingTypeProvider.getThingTypes(null).size();
// install test bundle
Bundle bundle = SyntheticBundleInstaller.install(bundleContext, TEST_BUNDLE_NAME);
assertThat(bundle, is(notNullValue()));
Collection<ThingType> thingTypes = thingTypeProvider.getThingTypes(null);
assertThat(thingTypes.size(), is(initialNumberOfThingTypes + 3));
BridgeType bridgeType = (BridgeType) thingTypes.stream().filter(it -> it.toString().equals("hue:bridge")).findFirst().get();
assertThat(bridgeType, is(notNullValue()));
assertThat(bridgeType.getCategory(), is("NetworkAppliance"));
assertThat(bridgeType.isListed(), is(false));
assertThat(bridgeType.getLabel(), is("HUE Bridge"));
assertThat(bridgeType.getDescription(), is("The hue Bridge represents the Philips hue bridge."));
assertThat(bridgeType.getProperties().size(), is(1));
assertThat(bridgeType.getProperties().get("vendor"), is("Philips"));
assertThat(bridgeType.getRepresentationProperty(), is("serialNumber"));
ThingType thingType = thingTypes.stream().filter(it -> it.toString().equals("hue:lamp")).findFirst().get();
assertThat(thingType, is(notNullValue()));
assertThat(thingType.getCategory(), is("Lightbulb"));
assertThat(thingType.isListed(), is(false));
assertThat(thingType.getLabel(), is("HUE Lamp"));
assertThat(thingType.getDescription(), is("My own great HUE Lamp."));
assertThat(thingType.getSupportedBridgeTypeUIDs().size(), is(1));
assertThat(thingType.getSupportedBridgeTypeUIDs().get(0), is("hue:bridge"));
assertThat(thingType.getExtensibleChannelTypeIds(), containsInAnyOrder("alarm", "brightness"));
assertThat(thingType.getProperties().size(), is(2));
assertThat(thingType.getProperties().get("key1"), is("value1"));
assertThat(thingType.getProperties().get("key2"), is("value2"));
assertThat(thingType.getRepresentationProperty(), is("uniqueId"));
List<ChannelDefinition> channelDefinitions = thingType.getChannelDefinitions();
assertThat(channelDefinitions.size(), is(3));
ChannelDefinition colorChannel = channelDefinitions.stream().filter(it -> it.getId().equals("color")).findFirst().get();
assertThat(colorChannel, is(notNullValue()));
assertThat(colorChannel.getProperties().size(), is(2));
assertThat(colorChannel.getProperties().get("chan.key1"), is("value1"));
assertThat(colorChannel.getProperties().get("chan.key2"), is("value2"));
ChannelType colorChannelType = channelTypeRegistry.getChannelType(colorChannel.getChannelTypeUID());
assertThat(colorChannelType, is(notNullValue()));
assertThat(colorChannelType.toString(), is("hue:color"));
assertThat(colorChannelType.getItemType(), is("ColorItem"));
assertThat(colorChannelType.getLabel(), is("HUE Lamp Color"));
assertThat(colorChannelType.getDescription(), is("The color channel allows to control the color of the hue lamp. It is also possible to dim values and switch the lamp on and off."));
Set<String> tags = colorChannelType.getTags();
assertThat(tags, is(notNullValue()));
assertThat(tags.contains("Hue"), is(true));
assertThat(tags.contains("ColorLamp"), is(true));
assertThat(tags.contains("AmbientLamp"), is(false));
assertThat(tags.contains("AlarmSystem"), is(false));
ChannelDefinition colorTemperatureChannel = channelDefinitions.stream().filter(it -> it.getId().equals("color_temperature")).findFirst().get();
assertThat(colorTemperatureChannel, is(notNullValue()));
assertThat(colorTemperatureChannel.getProperties().size(), is(0));
ChannelType colorTemperatureChannelType = channelTypeRegistry.getChannelType(colorTemperatureChannel.getChannelTypeUID());
assertThat(colorTemperatureChannelType, is(notNullValue()));
assertThat(colorTemperatureChannelType.toString(), is("hue:color_temperature"));
assertThat(colorTemperatureChannelType.getItemType(), is("DimmerItem"));
assertThat(colorTemperatureChannelType.getLabel(), is("HUE Lamp Color Temperature"));
assertThat(colorTemperatureChannelType.getDescription(), is("The color temperature channel allows to set the color temperature from 0 (cold) to 100 (warm)."));
tags = colorTemperatureChannelType.getTags();
assertThat(tags, is(notNullValue()));
assertThat(tags.contains("Hue"), is(true));
assertThat(tags.contains("AmbientLamp"), is(true));
assertThat(tags.contains("ColorLamp"), is(false));
assertThat(tags.contains("AlarmSystem"), is(false));
ChannelDefinition alarmChannel = channelDefinitions.stream().filter(it -> it.getId().equals("alarm")).findFirst().get();
assertThat(alarmChannel, is(notNullValue()));
ChannelType alarmChannelType = channelTypeRegistry.getChannelType(alarmChannel.getChannelTypeUID());
assertThat(alarmChannelType, is(notNullValue()));
assertThat(alarmChannelType.toString(), is("hue:alarm"));
assertThat(alarmChannelType.getItemType(), is("Number"));
assertThat(alarmChannelType.getLabel(), is("Alarm System"));
assertThat(alarmChannelType.getDescription(), is("The light blinks if alarm is set."));
tags = alarmChannelType.getTags();
assertThat(tags, is(notNullValue()));
assertThat(tags.contains("Hue"), is(true));
assertThat(tags.contains("AlarmSystem"), is(true));
assertThat(tags.contains("AmbientLamp"), is(false));
assertThat(tags.contains("ColorLamp"), is(false));
assertThat(alarmChannelType.getCategory(), is(equalTo("ALARM")));
StateDescription state = alarmChannelType.getState();
assertThat(state.getMinimum(), is(BigDecimal.ZERO));
assertThat(state.getMaximum(), is(BigDecimal.valueOf(100.0)));
assertThat(state.getStep(), is(BigDecimal.valueOf(10.0)));
assertThat(state.getPattern(), is(equalTo("%d Peek")));
assertThat(state.isReadOnly(), is(true));
assertThat(state.getOptions().size(), is(2));
assertThat(state.getOptions().get(0).getValue(), is(equalTo("SOUND")));
assertThat(state.getOptions().get(0).getLabel(), is(equalTo("My great sound.")));
thingType = thingTypes.stream().filter(it -> it.toString().equals("hue:lamp-with-group")).findFirst().get();
assertThat(thingType.getProperties().size(), is(0));
assertThat(thingType.getCategory(), is(nullValue()));
assertThat(thingType.isListed(), is(true));
assertThat(thingType.getExtensibleChannelTypeIds(), containsInAnyOrder("brightness", "alarm"));
// uninstall test bundle
bundle.uninstall();
assertThat(bundle.getState(), is(Bundle.UNINSTALLED));
}
use of org.eclipse.smarthome.core.thing.type.ThingType in project smarthome by eclipse.
the class ThingTypesTest method thingTypesShouldBeRemoved_whenBundleIsUninstalled.
@Test
public void thingTypesShouldBeRemoved_whenBundleIsUninstalled() throws Exception {
int initialNumberOfThingTypes = thingTypeProvider.getThingTypes(null).size();
// install test bundle
Bundle bundle = SyntheticBundleInstaller.install(bundleContext, TEST_BUNDLE_NAME);
assertThat(bundle, is(notNullValue()));
Collection<ThingType> thingTypes = thingTypeProvider.getThingTypes(null);
assertThat(thingTypes.size(), is(initialNumberOfThingTypes + 3));
// uninstall test bundle
bundle.uninstall();
assertThat(bundle.getState(), is(Bundle.UNINSTALLED));
thingTypes = thingTypeProvider.getThingTypes(null);
assertThat(thingTypes.size(), is(initialNumberOfThingTypes));
}
use of org.eclipse.smarthome.core.thing.type.ThingType in project smarthome by eclipse.
the class ChannelTypesI18nTest method channelDefinitionsShouldBeTranslatedCorrectly.
@Test
public void channelDefinitionsShouldBeTranslatedCorrectly() throws Exception {
Bundle bundle = SyntheticBundleInstaller.install(bundleContext, TEST_BUNDLE_NAME);
assertThat(bundle, is(notNullValue()));
ThingType thingType = thingTypeProvider.getThingTypes(null).stream().filter(it -> it.getUID().toString().equals("somebinding:something")).findFirst().get();
assertThat(thingType, is(notNullValue()));
assertThat(thingType.getChannelDefinitions().size(), is(2));
ChannelDefinition channelDefinition1 = thingType.getChannelDefinitions().stream().filter(it -> it.getId().equals("channelPlain")).findFirst().get();
assertThat(channelDefinition1.getLabel(), is(equalTo("Channel Plain Label")));
assertThat(channelDefinition1.getDescription(), is(equalTo("Channel Plain Description")));
ChannelDefinition channelDefinition2 = thingType.getChannelDefinitions().stream().filter(it -> it.getId().equals("channelInplace")).findFirst().get();
assertThat(channelDefinition2.getLabel(), is(equalTo("Channel Inplace Label")));
assertThat(channelDefinition2.getDescription(), is(equalTo("Channel Inplace Description")));
}
use of org.eclipse.smarthome.core.thing.type.ThingType in project smarthome by eclipse.
the class SystemWideChannelTypesTest method systemChannelsShouldLoadAndUnload.
@Test
public void systemChannelsShouldLoadAndUnload() throws Exception {
int initialNumberOfThingTypes = thingTypeProvider.getThingTypes(null).size();
int initialNumberOfChannelTypes = getChannelTypes().size();
// install test bundle
Bundle bundle = SyntheticBundleInstaller.install(bundleContext, SYSTEM_CHANNELS_BUNDLE_NAME);
assertThat(bundle, is(notNullValue()));
Collection<ThingType> thingTypes = thingTypeProvider.getThingTypes(null);
assertThat(thingTypes.size(), is(initialNumberOfThingTypes + 1));
assertThat(getChannelTypes().size(), is(initialNumberOfChannelTypes + 1));
// uninstall test bundle
bundle.uninstall();
assertThat(bundle.getState(), is(Bundle.UNINSTALLED));
thingTypes = thingTypeProvider.getThingTypes(null);
assertThat(thingTypes.size(), is(initialNumberOfThingTypes));
assertThat(getChannelTypes().size(), is(initialNumberOfChannelTypes));
}
Aggregations