]> git.basschouten.com Git - openhab-addons.git/blob
b85b4387a51fd5c982b53c811b5d64483fd4da5e
[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.AfterEach;
22 import org.junit.jupiter.api.BeforeEach;
23 import org.openhab.binding.mielecloud.internal.config.MieleCloudConfigService;
24 import org.openhab.binding.mielecloud.internal.config.servlet.AccountOverviewServlet;
25 import org.openhab.binding.mielecloud.internal.config.servlet.CreateBridgeServlet;
26 import org.openhab.binding.mielecloud.internal.config.servlet.ForwardToLoginServlet;
27 import org.openhab.binding.mielecloud.internal.config.servlet.ResultServlet;
28 import org.openhab.binding.mielecloud.internal.config.servlet.SuccessServlet;
29 import org.openhab.core.io.net.http.HttpClientFactory;
30
31 /**
32  * Common base class for all config flow tests.
33  *
34  * @author Björn Lange - Initial Contribution
35  */
36 @NonNullByDefault
37 public abstract class AbstractConfigFlowTest extends OpenHabOsgiTest {
38     @Nullable
39     private WebsiteCrawler crawler;
40
41     @Nullable
42     private AccountOverviewServlet accountOverviewServlet;
43
44     @Nullable
45     private ForwardToLoginServlet forwardToLoginServlet;
46
47     @Nullable
48     private ResultServlet resultServlet;
49
50     @Nullable
51     private SuccessServlet successServlet;
52
53     @Nullable
54     private CreateBridgeServlet createBridgeServlet;
55
56     protected final WebsiteCrawler getCrawler() {
57         final WebsiteCrawler crawler = this.crawler;
58         assertNotNull(crawler);
59         return Objects.requireNonNull(crawler);
60     }
61
62     protected final AccountOverviewServlet getAccountOverviewServlet() {
63         final AccountOverviewServlet accountOverviewServlet = this.accountOverviewServlet;
64         assertNotNull(accountOverviewServlet);
65         return Objects.requireNonNull(accountOverviewServlet);
66     }
67
68     protected final ForwardToLoginServlet getForwardToLoginServlet() {
69         final ForwardToLoginServlet forwardToLoginServlet = this.forwardToLoginServlet;
70         assertNotNull(forwardToLoginServlet);
71         return Objects.requireNonNull(forwardToLoginServlet);
72     }
73
74     protected final ResultServlet getResultServlet() {
75         final ResultServlet resultServlet = this.resultServlet;
76         assertNotNull(resultServlet);
77         return Objects.requireNonNull(resultServlet);
78     }
79
80     protected final SuccessServlet getSuccessServlet() {
81         final SuccessServlet successServlet = this.successServlet;
82         assertNotNull(successServlet);
83         return Objects.requireNonNull(successServlet);
84     }
85
86     protected final CreateBridgeServlet getCreateBridgeServlet() {
87         final CreateBridgeServlet createBridgeServlet = this.createBridgeServlet;
88         assertNotNull(createBridgeServlet);
89         return Objects.requireNonNull(createBridgeServlet);
90     }
91
92     @BeforeEach
93     public final void setUpConfigFlowTest() throws Exception {
94         setUpCrawler();
95         setUpServlets();
96     }
97
98     private void setUpCrawler() throws Exception {
99         HttpClientFactory clientFactory = getService(HttpClientFactory.class);
100         assertNotNull(clientFactory);
101         crawler = new WebsiteCrawler(Objects.requireNonNull(clientFactory));
102     }
103
104     private void setUpServlets() {
105         MieleCloudConfigService configService = getService(MieleCloudConfigService.class);
106         assertNotNull(configService);
107
108         accountOverviewServlet = configService.getAccountOverviewServlet();
109         forwardToLoginServlet = configService.getForwardToLoginServlet();
110         resultServlet = configService.getResultServlet();
111         successServlet = configService.getSuccessServlet();
112         createBridgeServlet = configService.getCreateBridgeServlet();
113     }
114
115     @AfterEach
116     public final void tearDown() throws Exception {
117         getCrawler().close();
118     }
119 }