Fix SAT and null analysis issues (#3781)
Signed-off-by: Wouter Born <github@maindrain.net>pull/3787/head
parent
8c36d57692
commit
5daf4ff076
|
@ -74,7 +74,9 @@ public class ScriptProfileFactory implements ProfileFactory, ProfileTypeProvider
|
|||
public void bindScriptTransformationService(ScriptTransformationService service, Map<String, Object> properties) {
|
||||
String serviceId = (String) properties.get(TransformationService.SERVICE_PROPERTY_NAME);
|
||||
String serviceLabel = (String) properties.get(TransformationService.SERVICE_PROPERTY_LABEL);
|
||||
services.put(serviceId, new ServiceRecord(service, serviceLabel));
|
||||
if (serviceId != null && serviceLabel != null) {
|
||||
services.put(serviceId, new ServiceRecord(service, serviceLabel));
|
||||
}
|
||||
}
|
||||
|
||||
public void unbindScriptTransformationService(ScriptTransformationService service, Map<String, Object> properties) {
|
||||
|
|
|
@ -169,7 +169,6 @@ public class RuleResource implements RESTResource {
|
|||
@QueryParam("prefix") final @Nullable String prefix, @QueryParam("tags") final @Nullable List<String> tags,
|
||||
@QueryParam("summary") @Parameter(description = "summary fields only") @Nullable Boolean summary,
|
||||
@DefaultValue("false") @QueryParam("staticDataOnly") @Parameter(description = "provides a cacheable list of values not expected to change regularly and honors the If-Modified-Since header, all other parameters are ignored") boolean staticDataOnly) {
|
||||
|
||||
if ((summary == null || !summary) && !securityContext.isUserInRole(Role.ADMIN)) {
|
||||
// users may only access the summary
|
||||
return JSONResponse.createErrorResponse(Status.UNAUTHORIZED, "Authentication required");
|
||||
|
|
|
@ -53,7 +53,10 @@ import org.openhab.core.config.core.ConfigParser;
|
|||
import org.openhab.core.config.core.ConfigurableService;
|
||||
import org.openhab.core.io.rest.JSONResponse;
|
||||
import org.openhab.core.io.rest.RESTConstants;
|
||||
import org.openhab.core.io.rest.auth.internal.*;
|
||||
import org.openhab.core.io.rest.auth.internal.ExpiringUserSecurityContextCache;
|
||||
import org.openhab.core.io.rest.auth.internal.JwtHelper;
|
||||
import org.openhab.core.io.rest.auth.internal.JwtSecurityContext;
|
||||
import org.openhab.core.io.rest.auth.internal.UserSecurityContext;
|
||||
import org.osgi.framework.Constants;
|
||||
import org.osgi.service.component.annotations.Activate;
|
||||
import org.osgi.service.component.annotations.Component;
|
||||
|
|
|
@ -470,26 +470,6 @@ public class FeatureInstaller implements ConfigurationListener {
|
|||
}
|
||||
}
|
||||
|
||||
private boolean installFeature(String name) {
|
||||
try {
|
||||
Feature[] features = featuresService.listInstalledFeatures();
|
||||
if (!anyMatchingFeature(features, withName(name))) {
|
||||
featuresService.installFeature(name,
|
||||
EnumSet.of(FeaturesService.Option.Upgrade, FeaturesService.Option.NoAutoRefreshBundles));
|
||||
features = featuresService.listInstalledFeatures();
|
||||
if (anyMatchingFeature(features, withName(name))) {
|
||||
logger.debug("Installed '{}'", name);
|
||||
postInstalledEvent(name);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Failed installing '{}': {}", name, e.getMessage(), debugException(e));
|
||||
configMapCache = null; // make sure we retry the installation
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void uninstallFeature(String name) {
|
||||
try {
|
||||
Feature[] features = featuresService.listInstalledFeatures();
|
||||
|
|
|
@ -62,11 +62,11 @@ import org.openhab.core.types.UnDefType;
|
|||
public class CommunicationManagerConversionTest {
|
||||
// TODO: remove test - only to show CommunicationManager is too complex
|
||||
|
||||
private static final List<Class<? extends Item>> itemTypes = List.of(CallItem.class, ColorItem.class,
|
||||
private static final List<Class<? extends Item>> ITEM_TYPES = List.of(CallItem.class, ColorItem.class,
|
||||
ContactItem.class, DateTimeItem.class, DimmerItem.class, ImageItem.class, LocationItem.class,
|
||||
PlayerItem.class, RollershutterItem.class, StringItem.class);
|
||||
|
||||
private static final List<Class<? extends Type>> types = List.of(DateTimeType.class, DecimalType.class,
|
||||
private static final List<Class<? extends Type>> TYPES = List.of(DateTimeType.class, DecimalType.class,
|
||||
HSBType.class, IncreaseDecreaseType.class, NextPreviousType.class, OnOffType.class, OpenClosedType.class,
|
||||
PercentType.class, PlayPauseType.class, PointType.class, QuantityType.class, RawType.class,
|
||||
RewindFastforwardType.class, StringType.class, UpDownType.class, UnDefType.class);
|
||||
|
@ -74,9 +74,9 @@ public class CommunicationManagerConversionTest {
|
|||
private static Stream<Arguments> arguments()
|
||||
throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
|
||||
List<Arguments> arguments = new ArrayList<>();
|
||||
for (Class<? extends Item> itemType : itemTypes) {
|
||||
for (Class<? extends Item> itemType : ITEM_TYPES) {
|
||||
Item item = itemType.getDeclaredConstructor(String.class).newInstance("testItem");
|
||||
for (Class<? extends Type> type : types) {
|
||||
for (Class<? extends Type> type : TYPES) {
|
||||
if (type.isEnum()) {
|
||||
arguments.add(Arguments.of(item, type.getEnumConstants()[0]));
|
||||
} else if (type == RawType.class) {
|
||||
|
|
|
@ -13,15 +13,12 @@
|
|||
package org.openhab.core.thing.binding;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||
import static org.hamcrest.Matchers.hasEntry;
|
||||
import static org.hamcrest.Matchers.hasItems;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -101,9 +98,8 @@ public class AbstractStorageBasedTypeProviderTest {
|
|||
List<ChannelDefinition> actualChannelDefinitions = actual.getChannelDefinitions();
|
||||
assertThat(actualChannelDefinitions.size(), is(expectedChannelDefinitions.size()));
|
||||
for (ChannelDefinition expectedChannelDefinition : expectedChannelDefinitions) {
|
||||
ChannelDefinition actualChannelDefinition = actualChannelDefinitions.stream()
|
||||
.filter(d -> d.getId().equals(expectedChannelDefinition.getId())).findFirst().orElse(null);
|
||||
assertThat(actualChannelDefinition, is(notNullValue()));
|
||||
ChannelDefinition actualChannelDefinition = Objects.requireNonNull(actualChannelDefinitions.stream()
|
||||
.filter(d -> d.getId().equals(expectedChannelDefinition.getId())).findFirst().orElse(null));
|
||||
assertChannelDefinition(actualChannelDefinition, expectedChannelDefinition);
|
||||
}
|
||||
}
|
||||
|
@ -145,18 +141,17 @@ public class AbstractStorageBasedTypeProviderTest {
|
|||
List<ChannelDefinition> actualChannelDefinitions = actual.getChannelDefinitions();
|
||||
assertThat(actualChannelDefinitions.size(), is(expectedChannelDefinitions.size()));
|
||||
for (ChannelDefinition expectedChannelDefinition : expectedChannelDefinitions) {
|
||||
ChannelDefinition actualChannelDefinition = actualChannelDefinitions.stream()
|
||||
.filter(d -> d.getId().equals(expectedChannelDefinition.getId())).findFirst().orElse(null);
|
||||
assertThat(actualChannelDefinition, is(notNullValue()));
|
||||
ChannelDefinition actualChannelDefinition = Objects.requireNonNull(actualChannelDefinitions.stream()
|
||||
.filter(d -> d.getId().equals(expectedChannelDefinition.getId())).findFirst().orElse(null));
|
||||
assertChannelDefinition(actualChannelDefinition, expectedChannelDefinition);
|
||||
}
|
||||
List<ChannelGroupDefinition> expectedChannelGroupDefinitions = expected.getChannelGroupDefinitions();
|
||||
List<ChannelGroupDefinition> actualChannelGroupDefinitions = actual.getChannelGroupDefinitions();
|
||||
assertThat(actualChannelGroupDefinitions.size(), is(expectedChannelGroupDefinitions.size()));
|
||||
for (ChannelGroupDefinition expectedChannelGroupDefinition : expectedChannelGroupDefinitions) {
|
||||
ChannelGroupDefinition actualChannelGroupDefinition = actualChannelGroupDefinitions.stream()
|
||||
.filter(d -> d.getId().equals(expectedChannelGroupDefinition.getId())).findFirst().orElse(null);
|
||||
assertThat(actualChannelGroupDefinition, is(notNullValue()));
|
||||
ChannelGroupDefinition actualChannelGroupDefinition = Objects.requireNonNull(actualChannelGroupDefinitions
|
||||
.stream().filter(d -> d.getId().equals(expectedChannelGroupDefinition.getId())).findFirst()
|
||||
.orElse(null));
|
||||
assertChannelGroupDefinition(actualChannelGroupDefinition, expectedChannelGroupDefinition);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,8 +85,8 @@ public class ItemStateConverterImpl implements ItemStateConverter {
|
|||
Class<? extends Quantity<?>> dimension = numberItem.getDimension();
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
// explicit cast to Class<? extends Quantity> as JDK compiler complains
|
||||
Unit<? extends Quantity<?>> conversionUnit = unitProvider
|
||||
.getUnit((Class<? extends Quantity>) dimension);
|
||||
Unit<? extends Quantity<?>> conversionUnit = dimension == null ? null
|
||||
: unitProvider.getUnit((Class<? extends Quantity>) dimension);
|
||||
if (conversionUnit != null
|
||||
&& UnitUtils.isDifferentMeasurementSystem(conversionUnit, quantityState.getUnit())) {
|
||||
return convertOrUndef(quantityState, conversionUnit);
|
||||
|
|
|
@ -73,7 +73,8 @@ public class NumberItem extends GenericItem implements MetadataAwareItem {
|
|||
|
||||
String itemTypeExtension = ItemUtil.getItemTypeExtension(getType());
|
||||
if (itemTypeExtension != null) {
|
||||
dimension = UnitUtils.parseDimension(itemTypeExtension);
|
||||
Class<? extends Quantity<?>> dimension = UnitUtils.parseDimension(itemTypeExtension);
|
||||
this.dimension = dimension;
|
||||
if (dimension == null) {
|
||||
throw new IllegalArgumentException("The given dimension " + itemTypeExtension + " is unknown.");
|
||||
} else if (unitProvider == null) {
|
||||
|
@ -104,13 +105,11 @@ public class NumberItem extends GenericItem implements MetadataAwareItem {
|
|||
if (dimension == null) {
|
||||
DecimalType strippedCommand = new DecimalType(command.toBigDecimal());
|
||||
internalSend(strippedCommand);
|
||||
} else if (command.getUnit().isCompatible(unit) || command.getUnit().inverse().isCompatible(unit)) {
|
||||
internalSend(command);
|
||||
} else {
|
||||
if (command.getUnit().isCompatible(unit) || command.getUnit().inverse().isCompatible(unit)) {
|
||||
internalSend(command);
|
||||
} else {
|
||||
logger.warn("Command '{}' to item '{}' was rejected because it is incompatible with the item unit '{}'",
|
||||
command, name, unit);
|
||||
}
|
||||
logger.warn("Command '{}' to item '{}' was rejected because it is incompatible with the item unit '{}'",
|
||||
command, name, unit);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -199,12 +198,7 @@ public class NumberItem extends GenericItem implements MetadataAwareItem {
|
|||
public void addedMetadata(Metadata metadata) {
|
||||
if (dimension != null && UNIT_METADATA_NAMESPACE.equals(metadata.getUID().getNamespace())) {
|
||||
Unit<?> unit = UnitUtils.parseUnit(metadata.getValue());
|
||||
if (unit == null) {
|
||||
logger.warn("Unit '{}' could not be parsed to a known unit. Keeping old unit '{}' for item '{}'.",
|
||||
metadata.getValue(), this.unit, name);
|
||||
return;
|
||||
}
|
||||
if (!unit.isCompatible(this.unit) && !unit.inverse().isCompatible(this.unit)) {
|
||||
if ((unit == null) || (!unit.isCompatible(this.unit) && !unit.inverse().isCompatible(this.unit))) {
|
||||
logger.warn("Unit '{}' could not be parsed to a known unit. Keeping old unit '{}' for item '{}'.",
|
||||
metadata.getValue(), this.unit, name);
|
||||
return;
|
||||
|
@ -222,6 +216,7 @@ public class NumberItem extends GenericItem implements MetadataAwareItem {
|
|||
@Override
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public void removedMetadata(Metadata metadata) {
|
||||
Class<? extends Quantity<?>> dimension = this.dimension;
|
||||
if (dimension != null && UNIT_METADATA_NAMESPACE.equals(metadata.getUID().getNamespace())) {
|
||||
assert unitProvider != null;
|
||||
unit = unitProvider.getUnit((Class<? extends Quantity>) dimension);
|
||||
|
|
|
@ -176,8 +176,7 @@ public class I18nProviderImplTest {
|
|||
@MethodSource("getAllDimensions")
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends Quantity<T>> void assertThatUnitProviderIsComplete(String dimensionName) {
|
||||
Class<? extends Quantity<?>> dimension = UnitUtils.parseDimension(dimensionName);
|
||||
assertThat(dimension, is(notNullValue()));
|
||||
Class<? extends Quantity<?>> dimension = Objects.requireNonNull(UnitUtils.parseDimension(dimensionName));
|
||||
|
||||
Unit<?> defaultUnit = i18nProviderImpl.getUnit((Class<T>) dimension);
|
||||
assertThat(dimensionName + " has no default unit", defaultUnit, notNullValue());
|
||||
|
|
|
@ -463,11 +463,11 @@ public class QuantityTypeTest {
|
|||
assertEquals(8, bits.byteValue());
|
||||
bytes = new QuantityType<>("1 MB");
|
||||
assertEquals("1 MB", bytes.toString());
|
||||
bytes = new QuantityType<DataAmount>(1, MetricPrefix.MEGA(Units.BYTE));
|
||||
bytes = new QuantityType<>(1, MetricPrefix.MEGA(Units.BYTE));
|
||||
assertEquals("1 MB", bytes.toString());
|
||||
bytes = new QuantityType<>("1 GiB");
|
||||
assertEquals("1 GiB", bytes.toString());
|
||||
bytes = new QuantityType<DataAmount>(1, BinaryPrefix.GIBI(Units.BYTE));
|
||||
bytes = new QuantityType<>(1, BinaryPrefix.GIBI(Units.BYTE));
|
||||
assertEquals("1 GiB", bytes.toString());
|
||||
QuantityType<DataAmount> bigAmount = new QuantityType<>("1 kio");
|
||||
QuantityType<DataAmount> octets = bigAmount.toUnit(Units.OCTET);
|
||||
|
|
|
@ -14,8 +14,7 @@ package org.openhab.core.automation.internal.module;
|
|||
|
||||
import static java.util.Map.entry;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
@ -77,8 +76,8 @@ public class RunRuleModuleTest extends JavaOSGiTest {
|
|||
startLevelService = mock(StartLevelService.class);
|
||||
when(startLevelService.getStartLevel()).thenReturn(100);
|
||||
registerService(startLevelService, StartLevelService.class.getName());
|
||||
EventPublisher eventPublisher = getService(EventPublisher.class);
|
||||
ItemRegistry itemRegistry = getService(ItemRegistry.class);
|
||||
EventPublisher eventPublisher = Objects.requireNonNull(getService(EventPublisher.class));
|
||||
ItemRegistry itemRegistry = Objects.requireNonNull(getService(ItemRegistry.class));
|
||||
CoreModuleHandlerFactory coreModuleHandlerFactory = new CoreModuleHandlerFactory(getBundleContext(),
|
||||
eventPublisher, itemRegistry, mock(TimeZoneProvider.class), mock(StartLevelService.class));
|
||||
mock(CoreModuleHandlerFactory.class);
|
||||
|
@ -206,6 +205,6 @@ public class RunRuleModuleTest extends JavaOSGiTest {
|
|||
};
|
||||
|
||||
ServiceReference<?> subscriberReference = registerService(eventSubscriber).getReference();
|
||||
assertNotNull(getServices(EventSubscriber.class, (reference) -> reference.equals(subscriberReference)));
|
||||
assertNotNull(getServices(EventSubscriber.class, reference -> reference.equals(subscriberReference)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,8 +14,7 @@ package org.openhab.core.automation.internal.module;
|
|||
|
||||
import static java.util.Map.entry;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
@ -87,8 +86,8 @@ public class RuntimeRuleTest extends JavaOSGiTest {
|
|||
startLevelService = mock(StartLevelService.class);
|
||||
when(startLevelService.getStartLevel()).thenReturn(100);
|
||||
registerService(startLevelService, StartLevelService.class.getName());
|
||||
EventPublisher eventPublisher = getService(EventPublisher.class);
|
||||
ItemRegistry itemRegistry = getService(ItemRegistry.class);
|
||||
EventPublisher eventPublisher = Objects.requireNonNull(getService(EventPublisher.class));
|
||||
ItemRegistry itemRegistry = Objects.requireNonNull(getService(ItemRegistry.class));
|
||||
CoreModuleHandlerFactory coreModuleHandlerFactory = new CoreModuleHandlerFactory(getBundleContext(),
|
||||
eventPublisher, itemRegistry, mock(TimeZoneProvider.class), mock(StartLevelService.class));
|
||||
mock(CoreModuleHandlerFactory.class);
|
||||
|
@ -136,7 +135,7 @@ public class RuntimeRuleTest extends JavaOSGiTest {
|
|||
};
|
||||
|
||||
ServiceReference<?> subscriberReference = registerService(eventSubscriber).getReference();
|
||||
assertNotNull(getServices(EventSubscriber.class, (reference) -> reference.equals(subscriberReference)));
|
||||
assertNotNull(getServices(EventSubscriber.class, reference -> reference.equals(subscriberReference)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -15,8 +15,7 @@ package org.openhab.core.automation.module.timer.internal;
|
|||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
@ -91,8 +90,8 @@ public abstract class BasicConditionHandlerTest extends JavaOSGiTest {
|
|||
startLevelService = mock(StartLevelService.class);
|
||||
when(startLevelService.getStartLevel()).thenReturn(100);
|
||||
registerService(startLevelService, StartLevelService.class.getName());
|
||||
EventPublisher eventPublisher = getService(EventPublisher.class);
|
||||
ItemRegistry itemRegistry = getService(ItemRegistry.class);
|
||||
EventPublisher eventPublisher = Objects.requireNonNull(getService(EventPublisher.class));
|
||||
ItemRegistry itemRegistry = Objects.requireNonNull(getService(ItemRegistry.class));
|
||||
CoreModuleHandlerFactory coreModuleHandlerFactory = new CoreModuleHandlerFactory(getBundleContext(),
|
||||
eventPublisher, itemRegistry, mock(TimeZoneProvider.class), mock(StartLevelService.class));
|
||||
mock(CoreModuleHandlerFactory.class);
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
@ -59,8 +60,8 @@ public class DayOfWeekConditionHandlerTest extends BasicConditionHandlerTest {
|
|||
|
||||
@BeforeEach
|
||||
public void before() {
|
||||
EventPublisher eventPublisher = getService(EventPublisher.class);
|
||||
ItemRegistry itemRegistry = getService(ItemRegistry.class);
|
||||
EventPublisher eventPublisher = Objects.requireNonNull(getService(EventPublisher.class));
|
||||
ItemRegistry itemRegistry = Objects.requireNonNull(getService(ItemRegistry.class));
|
||||
CoreModuleHandlerFactory coreModuleHandlerFactory = new CoreModuleHandlerFactory(getBundleContext(),
|
||||
eventPublisher, itemRegistry, mock(TimeZoneProvider.class), mock(StartLevelService.class));
|
||||
mock(CoreModuleHandlerFactory.class);
|
||||
|
|
|
@ -15,8 +15,7 @@ package org.openhab.core.automation.module.timer.internal;
|
|||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
@ -83,8 +82,8 @@ public class RuntimeRuleTest extends JavaOSGiTest {
|
|||
startLevelService = mock(StartLevelService.class);
|
||||
when(startLevelService.getStartLevel()).thenReturn(100);
|
||||
registerService(startLevelService, StartLevelService.class.getName());
|
||||
EventPublisher eventPublisher = getService(EventPublisher.class);
|
||||
ItemRegistry itemRegistry = getService(ItemRegistry.class);
|
||||
EventPublisher eventPublisher = Objects.requireNonNull(getService(EventPublisher.class));
|
||||
ItemRegistry itemRegistry = Objects.requireNonNull(getService(ItemRegistry.class));
|
||||
CoreModuleHandlerFactory coreModuleHandlerFactory = new CoreModuleHandlerFactory(getBundleContext(),
|
||||
eventPublisher, itemRegistry, mock(TimeZoneProvider.class), mock(StartLevelService.class));
|
||||
mock(CoreModuleHandlerFactory.class);
|
||||
|
@ -174,7 +173,7 @@ public class RuntimeRuleTest extends JavaOSGiTest {
|
|||
if (event.getTopic().contains(testItemName)) {
|
||||
itemEvents.add(event);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.util.Set<String> getSubscribedEventTypes() {
|
||||
|
|
|
@ -16,8 +16,7 @@ import static java.util.Map.entry;
|
|||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
@ -89,8 +88,8 @@ public class RuleEventTest extends JavaOSGiTest {
|
|||
startLevelService = mock(StartLevelService.class);
|
||||
when(startLevelService.getStartLevel()).thenReturn(100);
|
||||
registerService(startLevelService, StartLevelService.class.getName());
|
||||
EventPublisher eventPublisher = getService(EventPublisher.class);
|
||||
ItemRegistry itemRegistry = getService(ItemRegistry.class);
|
||||
EventPublisher eventPublisher = Objects.requireNonNull(getService(EventPublisher.class));
|
||||
ItemRegistry itemRegistry = Objects.requireNonNull(getService(ItemRegistry.class));
|
||||
CoreModuleHandlerFactory coreModuleHandlerFactory = new CoreModuleHandlerFactory(getBundleContext(),
|
||||
eventPublisher, itemRegistry, mock(TimeZoneProvider.class), mock(StartLevelService.class));
|
||||
mock(CoreModuleHandlerFactory.class);
|
||||
|
|
|
@ -13,12 +13,9 @@
|
|||
package org.openhab.core.thing.binding;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
@ -58,8 +55,7 @@ public class AbstractStorageBasedTypeProviderOSGiTest extends JavaOSGiTest {
|
|||
public void setup() {
|
||||
registerVolatileStorageService();
|
||||
|
||||
StorageService storageService = getService(StorageService.class);
|
||||
assertThat(storageService, is(notNullValue()));
|
||||
StorageService storageService = Objects.requireNonNull(getService(StorageService.class));
|
||||
|
||||
typeProvider = new AbstractStorageBasedTypeProvider(storageService) {
|
||||
};
|
||||
|
|
|
@ -104,7 +104,7 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
}
|
||||
}
|
||||
|
||||
private static final UnitProvider unitProviderMock = mock(UnitProvider.class);
|
||||
private static final UnitProvider UNIT_PROVIDER_MOCK = mock(UnitProvider.class);
|
||||
|
||||
private static final String EVENT = "event";
|
||||
private static final String ITEM_NAME_1 = "testItem1";
|
||||
|
@ -116,7 +116,7 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
private static final SwitchItem ITEM_2 = new SwitchItem(ITEM_NAME_2);
|
||||
private static final NumberItem ITEM_3 = new NumberItem(ITEM_NAME_3);
|
||||
private static final NumberItem ITEM_4 = new NumberItem(ITEM_NAME_4);
|
||||
private static NumberItem ITEM_5 = new NumberItem(ITEM_NAME_5); // will be replaced later by dimension item
|
||||
private NumberItem item5 = new NumberItem(ITEM_NAME_5); // will be replaced later by dimension item
|
||||
|
||||
private static final ThingTypeUID THING_TYPE_UID = new ThingTypeUID("test", "type");
|
||||
private static final ThingUID THING_UID = new ThingUID("test", "thing");
|
||||
|
@ -167,8 +167,8 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
|
||||
@BeforeEach
|
||||
public void beforeEach() {
|
||||
when(unitProviderMock.getUnit(Temperature.class)).thenReturn(SIUnits.CELSIUS);
|
||||
ITEM_5 = new NumberItem("Number:Temperature", ITEM_NAME_5, unitProviderMock);
|
||||
when(UNIT_PROVIDER_MOCK.getUnit(Temperature.class)).thenReturn(SIUnits.CELSIUS);
|
||||
item5 = new NumberItem("Number:Temperature", ITEM_NAME_5, UNIT_PROVIDER_MOCK);
|
||||
|
||||
safeCaller = getService(SafeCaller.class);
|
||||
assertNotNull(safeCaller);
|
||||
|
@ -179,7 +179,7 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
|
||||
manager = new CommunicationManager(autoUpdateManagerMock, channelTypeRegistryMock, profileFactory, iclRegistry,
|
||||
itemRegistryMock, itemStateConverterMock, eventPublisherMock, safeCaller, thingRegistryMock,
|
||||
unitProviderMock);
|
||||
UNIT_PROVIDER_MOCK);
|
||||
|
||||
doAnswer(invocation -> {
|
||||
switch (((Channel) invocation.getArguments()[0]).getKind()) {
|
||||
|
@ -227,7 +227,7 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
when(itemRegistryMock.get(eq(ITEM_NAME_2))).thenReturn(ITEM_2);
|
||||
when(itemRegistryMock.get(eq(ITEM_NAME_3))).thenReturn(ITEM_3);
|
||||
when(itemRegistryMock.get(eq(ITEM_NAME_4))).thenReturn(ITEM_4);
|
||||
when(itemRegistryMock.get(eq(ITEM_NAME_5))).thenReturn(ITEM_5);
|
||||
when(itemRegistryMock.get(eq(ITEM_NAME_5))).thenReturn(item5);
|
||||
|
||||
ChannelType channelType4 = mock(ChannelType.class);
|
||||
when(channelType4.getItemType()).thenReturn("Number:Temperature");
|
||||
|
@ -238,7 +238,7 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
|
||||
when(thingRegistryMock.get(eq(THING_UID))).thenReturn(THING);
|
||||
|
||||
manager.addItemFactory(new CoreItemFactory(unitProviderMock));
|
||||
manager.addItemFactory(new CoreItemFactory(UNIT_PROVIDER_MOCK));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -307,7 +307,7 @@ public class CommunicationManagerOSGiTest extends JavaOSGiTest {
|
|||
public void testItemCommandEventDecimal2Quantity2() {
|
||||
MetadataKey key = new MetadataKey(NumberItem.UNIT_METADATA_NAMESPACE, ITEM_NAME_5);
|
||||
Metadata metadata = new Metadata(key, ImperialUnits.FAHRENHEIT.toString(), null);
|
||||
ITEM_5.addedMetadata(metadata);
|
||||
item5.addedMetadata(metadata);
|
||||
|
||||
manager.receive(ItemEventFactory.createCommandEvent(ITEM_NAME_5, DecimalType.valueOf("20")));
|
||||
waitForAssert(() -> {
|
||||
|
|
Loading…
Reference in New Issue