diff --git a/itests/org.openhab.binding.modbus.tests/src/main/java/org/openhab/binding/modbus/tests/ModbusPollerThingHandlerTest.java b/itests/org.openhab.binding.modbus.tests/src/main/java/org/openhab/binding/modbus/tests/ModbusPollerThingHandlerTest.java index 7cd4377b9846f..82015740fd7b7 100644 --- a/itests/org.openhab.binding.modbus.tests/src/main/java/org/openhab/binding/modbus/tests/ModbusPollerThingHandlerTest.java +++ b/itests/org.openhab.binding.modbus.tests/src/main/java/org/openhab/binding/modbus/tests/ModbusPollerThingHandlerTest.java @@ -374,24 +374,6 @@ protected boolean matchesSafely(ModbusReadCallback callback) { verifyNoMoreInteractions(mockedModbusManager); } - @Test - public void testInitializeWithNoBridge() - throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException { - Configuration pollerConfig = new Configuration(); - pollerConfig.put("refresh", 150L); - pollerConfig.put("start", 5); - pollerConfig.put("length", 13); - pollerConfig.put("type", "coil"); - poller = createPollerThingBuilder("poller").withConfiguration(pollerConfig).build(); - addThing(poller); - verifyEndpointBasicInitInteraction(); - - assertThat(poller.getStatus(), is(equalTo(ThingStatus.OFFLINE))); - assertThat(poller.getStatusInfo().getStatusDetail(), is(equalTo(ThingStatusDetail.BRIDGE_OFFLINE))); - - verifyNoMoreInteractions(mockedModbusManager); - } - @Test public void testInitializeWithOfflineBridge() throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException { diff --git a/itests/org.openhab.binding.nest.tests/src/main/java/org/openhab/binding/nest/internal/wwn/handler/WWNThingHandlerOSGiTest.java b/itests/org.openhab.binding.nest.tests/src/main/java/org/openhab/binding/nest/internal/wwn/handler/WWNThingHandlerOSGiTest.java index 7ad42385f4044..98578166ec7ed 100644 --- a/itests/org.openhab.binding.nest.tests/src/main/java/org/openhab/binding/nest/internal/wwn/handler/WWNThingHandlerOSGiTest.java +++ b/itests/org.openhab.binding.nest.tests/src/main/java/org/openhab/binding/nest/internal/wwn/handler/WWNThingHandlerOSGiTest.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.TimeZone; import java.util.function.Function; @@ -36,6 +37,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; +import org.mockito.ArgumentMatchers; import org.openhab.binding.nest.internal.wwn.config.WWNAccountConfiguration; import org.openhab.binding.nest.internal.wwn.test.WWNTestAccountHandler; import org.openhab.binding.nest.internal.wwn.test.WWNTestApiServlet; @@ -61,6 +63,7 @@ import org.openhab.core.thing.ThingTypeUID; import org.openhab.core.thing.ThingUID; import org.openhab.core.thing.binding.ThingHandlerFactory; +import org.openhab.core.thing.binding.ThingTypeProvider; import org.openhab.core.thing.binding.builder.BridgeBuilder; import org.openhab.core.thing.binding.builder.ChannelBuilder; import org.openhab.core.thing.link.ItemChannelLink; @@ -172,6 +175,11 @@ public void setUp() throws ItemNotFoundException { Map.of(WWNTestHandlerFactory.REDIRECT_URL_CONFIG_PROPERTY, REDIRECT_URL)); registerService(nestTestHandlerFactory); + ThingTypeProvider thingTypeProvider = mock(ThingTypeProvider.class); + when(thingTypeProvider.getThingType(ArgumentMatchers.any(ThingTypeUID.class), nullable(Locale.class))) + .thenReturn(mock(ThingType.class)); + registerService(thingTypeProvider); + nestTestHandlerFactory = getService(ThingHandlerFactory.class, WWNTestHandlerFactory.class); assertThat("Could not get NestTestHandlerFactory", nestTestHandlerFactory, is(notNullValue())); diff --git a/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java b/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java index 629d371351e48..1d675da2ac982 100644 --- a/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java +++ b/itests/org.openhab.binding.ntp.tests/src/main/java/org/openhab/binding/ntp/test/NtpOSGiTest.java @@ -161,7 +161,7 @@ public void setUp() { channelTypeUID = new ChannelTypeUID(NtpBindingConstants.BINDING_ID + ":channelType"); channelTypeProvider = mock(ChannelTypeProvider.class); - when(channelTypeProvider.getChannelType(any(ChannelTypeUID.class), any(Locale.class))) + when(channelTypeProvider.getChannelType(any(ChannelTypeUID.class), nullable(Locale.class))) .thenReturn(ChannelTypeBuilder.state(channelTypeUID, "label", CoreItemFactory.SWITCH).build()); registerService(channelTypeProvider); } diff --git a/itests/org.openhab.binding.systeminfo.tests/src/main/java/org/openhab/binding/systeminfo/test/SysteminfoOSGiTest.java b/itests/org.openhab.binding.systeminfo.tests/src/main/java/org/openhab/binding/systeminfo/test/SysteminfoOSGiTest.java index 07277e3e41f42..0d47202454c76 100644 --- a/itests/org.openhab.binding.systeminfo.tests/src/main/java/org/openhab/binding/systeminfo/test/SysteminfoOSGiTest.java +++ b/itests/org.openhab.binding.systeminfo.tests/src/main/java/org/openhab/binding/systeminfo/test/SysteminfoOSGiTest.java @@ -23,6 +23,7 @@ import java.net.UnknownHostException; import java.util.Hashtable; import java.util.List; +import java.util.Locale; import javax.measure.quantity.ElectricPotential; import javax.measure.quantity.Temperature; @@ -34,8 +35,11 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.openhab.binding.systeminfo.internal.SysteminfoBindingConstants; import org.openhab.binding.systeminfo.internal.SysteminfoHandlerFactory; import org.openhab.binding.systeminfo.internal.SysteminfoThingTypeProvider; @@ -81,7 +85,10 @@ import org.openhab.core.thing.link.ItemChannelLink; import org.openhab.core.thing.link.ManagedItemChannelLinkProvider; import org.openhab.core.thing.type.ChannelKind; +import org.openhab.core.thing.type.ChannelType; +import org.openhab.core.thing.type.ChannelTypeProvider; import org.openhab.core.thing.type.ChannelTypeUID; +import org.openhab.core.thing.type.ThingType; import org.openhab.core.types.State; import org.openhab.core.types.UnDefType; @@ -95,6 +102,7 @@ */ @NonNullByDefault @ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class SysteminfoOSGiTest extends JavaOSGiTest { private static final String DEFAULT_TEST_THING_NAME = "work"; private static final String DEFAULT_TEST_ITEM_NAME = "test"; @@ -260,6 +268,22 @@ private void initializeThing(Configuration thingConfiguration, String channelID, .withChannel(channel).build(); systemInfoThing = thing; + // TODO: This is a technically not correct work-around as the thing types are currently not made available by + // the binding. It should be properly fixes in the binding that thing-types are added to the registry. The + // "correct" solution here would be to wait until the thing manager initializes the thing with a missing thing + // type, but that would make each test take 120+ s + ThingTypeProvider thingTypeProviderMock = mock(ThingTypeProvider.class); + when(thingTypeProviderMock.getThingType(ArgumentMatchers.any(ThingTypeUID.class), nullable(Locale.class))) + .thenReturn(mock(ThingType.class)); + registerService(thingTypeProviderMock); + + ChannelType channelTypeMock = mock(ChannelType.class); + when(channelTypeMock.getKind()).thenReturn(ChannelKind.STATE); + ChannelTypeProvider channelTypeProviderMock = mock(ChannelTypeProvider.class); + when(channelTypeProviderMock.getChannelType(ArgumentMatchers.any(ChannelTypeUID.class), nullable(Locale.class))) + .thenReturn(channelTypeMock); + registerService(channelTypeProviderMock); + ManagedThingProvider managedThingProvider = getService(ThingProvider.class, ManagedThingProvider.class); assertThat(managedThingProvider, is(notNullValue())); diff --git a/itests/org.openhab.binding.wemo.tests/src/main/java/org/openhab/binding/wemo/internal/test/GenericWemoOSGiTest.java b/itests/org.openhab.binding.wemo.tests/src/main/java/org/openhab/binding/wemo/internal/test/GenericWemoOSGiTest.java index 01545299ce32e..ae2f2789d6fd2 100644 --- a/itests/org.openhab.binding.wemo.tests/src/main/java/org/openhab/binding/wemo/internal/test/GenericWemoOSGiTest.java +++ b/itests/org.openhab.binding.wemo.tests/src/main/java/org/openhab/binding/wemo/internal/test/GenericWemoOSGiTest.java @@ -125,7 +125,7 @@ protected void setUpServices() throws IOException { registerService(wemoHttpCallFactory, WemoHttpCallFactory.class.getName()); ChannelTypeProvider channelTypeProvider = mock(ChannelTypeProvider.class); - when(channelTypeProvider.getChannelType(any(ChannelTypeUID.class), any(Locale.class))).thenReturn( + when(channelTypeProvider.getChannelType(any(ChannelTypeUID.class), nullable(Locale.class))).thenReturn( ChannelTypeBuilder.state(DEFAULT_CHANNEL_TYPE_UID, "label", CoreItemFactory.SWITCH).build()); registerService(channelTypeProvider); }