]> git.basschouten.com Git - openhab-addons.git/blob
c3f29a441174660b86d81758a430b96e6934d028
[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.webservice.language;
14
15 import static org.junit.jupiter.api.Assertions.*;
16
17 import java.util.Optional;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.junit.jupiter.api.Test;
21
22 /**
23  * @author Björn Lange - Initial contribution
24  */
25 @NonNullByDefault
26 public class CombiningLanguageProviderTest {
27     private static final Optional<String> PRIORITIZED_LANGUAGE = Optional.of("de");
28     private static final Optional<String> FALLBACK_LANGUAGE = Optional.of("en");
29
30     private static final LanguageProvider PRIORITIZED_PROVIDER = new LanguageProvider() {
31         @Override
32         public Optional<String> getLanguage() {
33             return PRIORITIZED_LANGUAGE;
34         }
35     };
36
37     private static final LanguageProvider FALLBACK_PROVIDER = new LanguageProvider() {
38         @Override
39         public Optional<String> getLanguage() {
40             return FALLBACK_LANGUAGE;
41         }
42     };
43
44     private static final LanguageProvider NULL_PROVIDER = new LanguageProvider() {
45         @Override
46         public Optional<String> getLanguage() {
47             return Optional.empty();
48         }
49     };
50
51     @Test
52     public void testPrioritizedLanguageProviderIsUsed() {
53         // given:
54         LanguageProvider provider = new CombiningLanguageProvider(PRIORITIZED_PROVIDER, FALLBACK_PROVIDER);
55
56         // when:
57         Optional<String> language = provider.getLanguage();
58
59         // then:
60         assertEquals(PRIORITIZED_LANGUAGE, language);
61     }
62
63     @Test
64     public void testFallbackProviderIsUsedWhenPrioritizedProviderIsNull() {
65         // given:
66         LanguageProvider provider = new CombiningLanguageProvider(null, FALLBACK_PROVIDER);
67
68         // when:
69         Optional<String> language = provider.getLanguage();
70
71         // then:
72         assertEquals(FALLBACK_LANGUAGE, language);
73     }
74
75     @Test
76     public void testFallbackProviderIsUsedWhenPrioritizedProviderProvidesNull() {
77         // given:
78         LanguageProvider provider = new CombiningLanguageProvider(NULL_PROVIDER, FALLBACK_PROVIDER);
79
80         // when:
81         Optional<String> language = provider.getLanguage();
82
83         // then:
84         assertEquals(FALLBACK_LANGUAGE, language);
85     }
86
87     @Test
88     public void testProvidesNullWhenBothProvidersAreNull() {
89         // given:
90         LanguageProvider provider = new CombiningLanguageProvider(null, null);
91
92         // when:
93         Optional<String> language = provider.getLanguage();
94
95         // then:
96         assertFalse(language.isPresent());
97     }
98 }