]> git.basschouten.com Git - openhab-addons.git/blob
edf68d265dc45b5f52e5f7dc57d5b3d844afdd60
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.mielecloud.internal.util;
14
15 import static org.junit.jupiter.api.Assertions.assertNotNull;
16
17 import java.util.Objects;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.eclipse.jdt.annotation.Nullable;
21 import org.junit.jupiter.api.BeforeEach;
22 import org.openhab.binding.mielecloud.internal.config.MieleCloudConfigService;
23 import org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet;
24 import org.openhab.binding.mielecloud.internal.config.servlet.CreateBridgeServlet;
25 import org.openhab.binding.mielecloud.internal.config.servlet.ForwardToLoginServlet;
26 import org.openhab.binding.mielecloud.internal.config.servlet.ResultServlet;
27 import org.openhab.binding.mielecloud.internal.config.servlet.SuccessServlet;
28 import org.openhab.core.io.net.http.HttpClientFactory;
29
30 /**
31  * Common base class for all config flow tests.
32  *
33  * @author Björn Lange - Initial Contribution
34  */
35 @NonNullByDefault
36 public abstract class AbstractConfigFlowTest extends OpenHabOsgiTest {
37     @Nullable
38     private WebsiteCrawler crawler;
39
40     @Nullable
41     private AccountOverviewServlet accountOverviewServlet;
42
43     @Nullable
44     private ForwardToLoginServlet forwardToLoginServlet;
45
46     @Nullable
47     private ResultServlet resultServlet;
48
49     @Nullable
50     private SuccessServlet successServlet;
51
52     @Nullable
53     private CreateBridgeServlet createBridgeServlet;
54
55     protected final WebsiteCrawler getCrawler() {
56         final WebsiteCrawler crawler = this.crawler;
57         assertNotNull(crawler);
58         return Objects.requireNonNull(crawler);
59     }
60
61     protected final AccountOverviewServlet getAccountOverviewServlet() {
62         final AccountOverviewServlet accountOverviewServlet = this.accountOverviewServlet;
63         assertNotNull(accountOverviewServlet);
64         return Objects.requireNonNull(accountOverviewServlet);
65     }
66
67     protected final ForwardToLoginServlet getForwardToLoginServlet() {
68         final ForwardToLoginServlet forwardToLoginServlet = this.forwardToLoginServlet;
69         assertNotNull(forwardToLoginServlet);
70         return Objects.requireNonNull(forwardToLoginServlet);
71     }
72
73     protected final ResultServlet getResultServlet() {
74         final ResultServlet resultServlet = this.resultServlet;
75         assertNotNull(resultServlet);
76         return Objects.requireNonNull(resultServlet);
77     }
78
79     protected final SuccessServlet getSuccessServlet() {
80         final SuccessServlet successServlet = this.successServlet;
81         assertNotNull(successServlet);
82         return Objects.requireNonNull(successServlet);
83     }
84
85     protected final CreateBridgeServlet getCreateBridgeServlet() {
86         final CreateBridgeServlet createBridgeServlet = this.createBridgeServlet;
87         assertNotNull(createBridgeServlet);
88         return Objects.requireNonNull(createBridgeServlet);
89     }
90
91     @BeforeEach
92     public final void setUpConfigFlowTest() {
93         setUpCrawler();
94         setUpServlets();
95     }
96
97     private void setUpCrawler() {
98         HttpClientFactory clientFactory = getService(HttpClientFactory.class);
99         assertNotNull(clientFactory);
100         crawler = new WebsiteCrawler(Objects.requireNonNull(clientFactory));
101     }
102
103     private void setUpServlets() {
104         MieleCloudConfigService configService = getService(MieleCloudConfigService.class);
105         assertNotNull(configService);
106
107         accountOverviewServlet = configService.getAccountOverviewServlet();
108         forwardToLoginServlet = configService.getForwardToLoginServlet();
109         resultServlet = configService.getResultServlet();
110         successServlet = configService.getSuccessServlet();
111         createBridgeServlet = configService.getCreateBridgeServlet();
112     }
113 }