Skip to content

Commit 755db7c

Browse files
authored
[avmfritz] Fix itest (#21391)
Signed-off-by: Leo Siepel <leosiepel@gmail.com>
1 parent d1c76dc commit 755db7c

3 files changed

Lines changed: 21 additions & 55 deletions

File tree

bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.HashMap;
1818
import java.util.Map;
1919
import java.util.Set;
20+
import java.util.concurrent.ScheduledExecutorService;
2021
import java.util.stream.Collectors;
2122
import java.util.stream.Stream;
2223

@@ -53,18 +54,26 @@
5354
@NonNullByDefault
5455
public class AVMFritzDiscoveryService extends AbstractThingHandlerDiscoveryService<AVMFritzBaseBridgeHandler>
5556
implements FritzAhaStatusListener, DiscoveryService {
57+
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES = Stream.of(SUPPORTED_LIGHTING_THING_TYPES,
58+
SUPPORTED_BUTTON_THING_TYPES_UIDS, SUPPORTED_HEATING_THING_TYPES, SUPPORTED_POWER_METER_THING_TYPES,
59+
SUPPORTED_DEVICE_THING_TYPES_UIDS, SUPPORTED_GROUP_THING_TYPES_UIDS).flatMap(Set::stream)
60+
.collect(Collectors.toUnmodifiableSet());
61+
5662
private final Logger logger = LoggerFactory.getLogger(AVMFritzDiscoveryService.class);
5763
private final Bundle bundle;
5864

5965
@Activate
6066
public AVMFritzDiscoveryService(final @Reference LocaleProvider localeProvider,
6167
final @Reference TranslationProvider i18nProvider) {
62-
super(AVMFritzBaseBridgeHandler.class,
63-
Stream.of(SUPPORTED_LIGHTING_THING_TYPES, SUPPORTED_BUTTON_THING_TYPES_UIDS,
64-
SUPPORTED_HEATING_THING_TYPES, SUPPORTED_POWER_METER_THING_TYPES,
65-
SUPPORTED_DEVICE_THING_TYPES_UIDS, SUPPORTED_GROUP_THING_TYPES_UIDS).flatMap(Set::stream)
66-
.collect(Collectors.toUnmodifiableSet()),
67-
30);
68+
super(AVMFritzBaseBridgeHandler.class, SUPPORTED_THING_TYPES, 30);
69+
this.localeProvider = localeProvider;
70+
this.i18nProvider = i18nProvider;
71+
this.bundle = FrameworkUtil.getBundle(AVMFritzDiscoveryService.class);
72+
}
73+
74+
AVMFritzDiscoveryService(ScheduledExecutorService scheduler, LocaleProvider localeProvider,
75+
TranslationProvider i18nProvider) {
76+
super(scheduler, AVMFritzBaseBridgeHandler.class, SUPPORTED_THING_TYPES, 30, true, null, null);
6877
this.localeProvider = localeProvider;
6978
this.i18nProvider = i18nProvider;
7079
this.bundle = FrameworkUtil.getBundle(AVMFritzDiscoveryService.class);

itests/org.openhab.binding.avmfritz.tests/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryServiceOSGiTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.eclipse.jdt.annotation.Nullable;
3232
import org.junit.jupiter.api.AfterEach;
3333
import org.junit.jupiter.api.BeforeEach;
34-
import org.junit.jupiter.api.Disabled;
3534
import org.junit.jupiter.api.Test;
3635
import org.openhab.binding.avmfritz.internal.dto.AVMFritzBaseModel;
3736
import org.openhab.binding.avmfritz.internal.dto.DeviceListModel;
@@ -45,6 +44,7 @@
4544
import org.openhab.core.i18n.TranslationProvider;
4645
import org.openhab.core.thing.ThingTypeUID;
4746
import org.openhab.core.thing.ThingUID;
47+
import org.openhab.core.util.SameThreadExecutorService;
4848

4949
/**
5050
* Tests for {@link AVMFritzDiscoveryService}.
@@ -53,7 +53,6 @@
5353
* @author Ulrich Mertin - Added support for HAN-FUN blinds
5454
*/
5555
@NonNullByDefault
56-
@Disabled("Often blocks indefinitely, see: https://github.com/openhab/openhab-addons/issues/16536")
5756
public class AVMFritzDiscoveryServiceOSGiTest extends AVMFritzThingHandlerOSGiTest {
5857

5958
private static final ThingUID BRIGE_THING_ID = new ThingUID("avmfritz:fritzbox:1");
@@ -83,7 +82,8 @@ public void thingDiscovered(DiscoveryService source, DiscoveryResult result) {
8382
@BeforeEach
8483
public void setUp() {
8584
super.setUp();
86-
discovery = new AVMFritzDiscoveryService(mock(LocaleProvider.class), mock(TranslationProvider.class));
85+
discovery = new AVMFritzDiscoveryService(new SameThreadExecutorService(), mock(LocaleProvider.class),
86+
mock(TranslationProvider.class));
8787
discovery.setThingHandler(bridgeHandler);
8888
discovery.addDiscoveryListener(listener);
8989
}

itests/org.openhab.binding.avmfritz.tests/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzThingHandlerOSGiTest.java

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,11 @@
1919
import java.util.Map;
2020

2121
import org.eclipse.jdt.annotation.NonNullByDefault;
22-
import org.eclipse.jetty.client.HttpClient;
23-
import org.junit.jupiter.api.AfterAll;
24-
import org.junit.jupiter.api.AfterEach;
25-
import org.junit.jupiter.api.BeforeAll;
2622
import org.junit.jupiter.api.BeforeEach;
2723
import org.openhab.binding.avmfritz.internal.AVMFritzDynamicCommandDescriptionProvider;
2824
import org.openhab.core.config.core.Configuration;
2925
import org.openhab.core.test.java.JavaOSGiTest;
30-
import org.openhab.core.test.storage.VolatileStorageService;
3126
import org.openhab.core.thing.Bridge;
32-
import org.openhab.core.thing.ManagedThingProvider;
33-
import org.openhab.core.thing.ThingProvider;
34-
import org.openhab.core.thing.binding.ThingHandler;
3527
import org.openhab.core.thing.binding.ThingHandlerCallback;
3628
import org.openhab.core.thing.binding.builder.BridgeBuilder;
3729

@@ -43,60 +35,25 @@
4335
@NonNullByDefault
4436
public abstract class AVMFritzThingHandlerOSGiTest extends JavaOSGiTest {
4537

46-
private static HttpClient httpClient = new HttpClient();
47-
48-
private VolatileStorageService volatileStorageService = new VolatileStorageService();
49-
private @NonNullByDefault({}) ManagedThingProvider managedThingProvider;
50-
5138
protected @NonNullByDefault({}) Bridge bridge;
5239
protected @NonNullByDefault({}) BoxHandler bridgeHandler;
5340

54-
@BeforeAll
55-
public static void setUpClass() throws Exception {
56-
httpClient.start();
57-
}
58-
5941
@BeforeEach
6042
public void setUp() {
61-
registerService(volatileStorageService);
62-
63-
managedThingProvider = getService(ThingProvider.class, ManagedThingProvider.class);
64-
assertNotNull(managedThingProvider, "Could not get ManagedThingProvider");
65-
6643
bridge = buildBridge();
6744
assertNotNull(bridge.getConfiguration());
6845

69-
managedThingProvider.add(bridge);
70-
7146
ThingHandlerCallback callback = mock(ThingHandlerCallback.class);
7247

73-
bridgeHandler = new BoxHandler(bridge, httpClient, mock(AVMFritzDynamicCommandDescriptionProvider.class));
48+
bridgeHandler = new BoxHandler(bridge, mock(), mock(AVMFritzDynamicCommandDescriptionProvider.class));
7449
assertNotNull(bridgeHandler);
7550

7651
bridgeHandler.setCallback(callback);
77-
78-
ThingHandler oldHandler = bridge.getHandler();
79-
if (oldHandler != null) {
80-
oldHandler.dispose();
81-
}
8252
bridge.setHandler(bridgeHandler);
8353
assertNotNull(bridge.getHandler());
8454

85-
bridgeHandler.initialize();
86-
}
87-
88-
@AfterEach
89-
public void tearDown() {
90-
if (bridge != null) {
91-
managedThingProvider.remove(bridge.getUID());
92-
}
93-
94-
unregisterService(volatileStorageService);
95-
}
96-
97-
@AfterAll
98-
public static void tearDownClass() throws Exception {
99-
httpClient.stop();
55+
// Discovery tests only need the handler's type and UID mapping. Initializing it would authenticate against
56+
// the configured host and make these tests depend on the network.
10057
}
10158

10259
private Bridge buildBridge() {

0 commit comments

Comments
 (0)