]> git.basschouten.com Git - openhab-addons.git/blob
6e04c650fd9365b5ed8ae832f95a3a82714da159
[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.astro.test.cases;
14
15 import static org.openhab.binding.astro.test.cases.AstroBindingTestsData.*;
16
17 import java.util.Arrays;
18 import java.util.List;
19
20 import org.openhab.binding.astro.test.AstroStateTest;
21 import org.openhab.core.library.types.DateTimeType;
22 import org.openhab.core.library.types.QuantityType;
23 import org.openhab.core.library.unit.Units;
24
25 /**
26  * Test cases used in the {@link AstroStateTest}
27  *
28  * @author Petar Valchev - Initial contribution
29  * @author Svilen Valakanov - Added test data from
30  *         <a href="http://www.suncalc.net">http://www.suncalc.net</a> and
31  *         <a href="http://www.mooncalc.org">http://www.mooncalc.org</a>
32  * @author Erdoan Hadzhiyusein - Adapted the class to work with the new DateTimeType
33  * @author Christoph Weitkamp - Introduced UoM and migrated tests to pure Java
34  */
35 public final class AstroParametrizedTestCases {
36
37     public static final double TEST_LATITUDE = 22.4343;
38     public static final double TEST_LONGITUDE = 54.3225;
39     public static final int TEST_YEAR = 2016;
40     public static final int TEST_MONTH = 2;
41     public static final int TEST_DAY = 29;
42
43     public Object[][] cases = new Object[42][3];
44
45     public AstroParametrizedTestCases() {
46         cases[0][0] = TEST_SUN_THING_ID;
47         cases[0][1] = "rise#start";
48         cases[0][2] = new DateTimeType("2016-02-29T05:46:00+03:00");
49
50         cases[1][0] = TEST_SUN_THING_ID;
51         cases[1][1] = "rise#end";
52         cases[1][2] = new DateTimeType("2016-02-29T05:48:00+03:00");
53
54         cases[2][0] = TEST_SUN_THING_ID;
55         cases[2][1] = "rise#duration";
56         cases[2][2] = new QuantityType<>(2, Units.MINUTE);
57
58         cases[3][0] = TEST_SUN_THING_ID;
59         cases[3][1] = "set#start";
60         cases[3][2] = new DateTimeType("2016-02-29T17:25:00+03:00");
61
62         cases[4][0] = TEST_SUN_THING_ID;
63         cases[4][1] = "set#end";
64         cases[4][2] = new DateTimeType("2016-02-29T17:27:00+03:00");
65
66         cases[5][0] = TEST_SUN_THING_ID;
67         cases[5][1] = "set#duration";
68         cases[5][2] = new QuantityType<>(2, Units.MINUTE);
69
70         cases[6][0] = TEST_SUN_THING_ID;
71         cases[6][1] = "noon#start";
72         cases[6][2] = new DateTimeType("2016-02-29T11:37:00+03:00");
73
74         cases[7][0] = TEST_SUN_THING_ID;
75         cases[7][1] = "noon#end";
76         cases[7][2] = new DateTimeType("2016-02-29T11:38:00+03:00");
77
78         cases[8][0] = TEST_SUN_THING_ID;
79         cases[8][1] = "noon#duration";
80         cases[8][2] = new QuantityType<>(1, Units.MINUTE);
81
82         cases[9][0] = TEST_SUN_THING_ID;
83         cases[9][1] = "night#start";
84         cases[9][2] = new DateTimeType("2016-02-29T18:42:00+03:00");
85
86         cases[10][0] = TEST_SUN_THING_ID;
87         cases[10][1] = "night#end";
88         cases[10][2] = new DateTimeType("2016-03-01T04:31:00+03:00");
89
90         cases[11][0] = TEST_SUN_THING_ID;
91         cases[11][1] = "night#duration";
92         cases[11][2] = new QuantityType<>(589, Units.MINUTE);
93
94         cases[12][0] = TEST_SUN_THING_ID;
95         cases[12][1] = "morningNight#start";
96         cases[12][2] = new DateTimeType("2016-02-29T00:00:00+03:00");
97
98         cases[13][0] = TEST_SUN_THING_ID;
99         cases[13][1] = "morningNight#end";
100         cases[13][2] = new DateTimeType("2016-02-29T04:32:00+03:00");
101
102         cases[14][0] = TEST_SUN_THING_ID;
103         cases[14][1] = "morningNight#duration";
104         cases[14][2] = new QuantityType<>(272, Units.MINUTE);
105
106         cases[15][0] = TEST_SUN_THING_ID;
107         cases[15][1] = "astroDawn#start";
108         cases[15][2] = new DateTimeType("2016-02-29T04:32:00+03:00");
109
110         cases[16][0] = TEST_SUN_THING_ID;
111         cases[16][1] = "astroDawn#end";
112         cases[16][2] = new DateTimeType("2016-02-29T04:58:00+03:00");
113
114         cases[17][0] = TEST_SUN_THING_ID;
115         cases[17][1] = "astroDawn#duration";
116         cases[17][2] = new QuantityType<>(26, Units.MINUTE);
117
118         cases[18][0] = TEST_SUN_THING_ID;
119         cases[18][1] = "nauticDawn#start";
120         cases[18][2] = new DateTimeType("2016-02-29T04:58:00+03:00");
121
122         cases[19][0] = TEST_SUN_THING_ID;
123         cases[19][1] = "nauticDawn#end";
124         cases[19][2] = new DateTimeType("2016-02-29T05:24:00+03:00");
125
126         cases[20][0] = TEST_SUN_THING_ID;
127         cases[20][1] = "nauticDawn#duration";
128         cases[20][2] = new QuantityType<>(26, Units.MINUTE);
129
130         cases[21][0] = TEST_SUN_THING_ID;
131         cases[21][1] = "civilDawn#start";
132         cases[21][2] = new DateTimeType("2016-02-29T05:24:00+03:00");
133
134         cases[22][0] = TEST_SUN_THING_ID;
135         cases[22][1] = "civilDawn#end";
136         cases[22][2] = new DateTimeType("2016-02-29T05:46:00+03:00");
137
138         cases[23][0] = TEST_SUN_THING_ID;
139         cases[23][1] = "civilDawn#duration";
140         cases[23][2] = new QuantityType<>(22, Units.MINUTE);
141
142         cases[24][0] = TEST_SUN_THING_ID;
143         cases[24][1] = "astroDusk#start";
144         cases[24][2] = new DateTimeType("2016-02-29T18:16:00+03:00");
145
146         cases[25][0] = TEST_SUN_THING_ID;
147         cases[25][1] = "astroDusk#end";
148         cases[25][2] = new DateTimeType("2016-02-29T18:42:00+03:00");
149
150         cases[26][0] = TEST_SUN_THING_ID;
151         cases[26][1] = "astroDusk#duration";
152         cases[26][2] = new QuantityType<>(26, Units.MINUTE);
153
154         cases[27][0] = TEST_SUN_THING_ID;
155         cases[27][1] = "nauticDusk#start";
156         cases[27][2] = new DateTimeType("2016-02-29T17:50:00+03:00");
157
158         cases[28][0] = TEST_SUN_THING_ID;
159         cases[28][1] = "nauticDusk#end";
160         cases[28][2] = new DateTimeType("2016-02-29T18:16:00+03:00");
161
162         cases[29][0] = TEST_SUN_THING_ID;
163         cases[29][1] = "nauticDusk#duration";
164         cases[29][2] = new QuantityType<>(26, Units.MINUTE);
165
166         cases[30][0] = TEST_SUN_THING_ID;
167         cases[30][1] = "civilDusk#start";
168         cases[30][2] = new DateTimeType("2016-02-29T17:27:00+03:00");
169
170         cases[31][0] = TEST_SUN_THING_ID;
171         cases[31][1] = "civilDusk#end";
172         cases[31][2] = new DateTimeType("2016-02-29T17:50:00+03:00");
173
174         cases[32][0] = TEST_SUN_THING_ID;
175         cases[32][1] = "civilDusk#duration";
176         cases[32][2] = new QuantityType<>(23, Units.MINUTE);
177
178         cases[33][0] = TEST_SUN_THING_ID;
179         cases[33][1] = "eveningNight#start";
180         cases[33][2] = new DateTimeType("2016-02-29T18:42:00+03:00");
181
182         cases[34][0] = TEST_SUN_THING_ID;
183         cases[34][1] = "eveningNight#end";
184         cases[34][2] = new DateTimeType("2016-03-01T00:00:00+03:00");
185
186         cases[35][0] = TEST_SUN_THING_ID;
187         cases[35][1] = "eveningNight#duration";
188         cases[35][2] = new QuantityType<>(318, Units.MINUTE);
189
190         cases[36][0] = TEST_SUN_THING_ID;
191         cases[36][1] = "daylight#start";
192         cases[36][2] = new DateTimeType("2016-02-29T05:48:00+03:00");
193
194         cases[37][0] = TEST_SUN_THING_ID;
195         cases[37][1] = "daylight#end";
196         cases[37][2] = new DateTimeType("2016-02-29T17:25:00+03:00");
197
198         cases[38][0] = TEST_SUN_THING_ID;
199         cases[38][1] = "daylight#duration";
200         cases[38][2] = new QuantityType<>(697, Units.MINUTE);
201
202         cases[39][0] = TEST_MOON_THING_ID;
203         cases[39][1] = "rise#start";
204         cases[39][2] = new DateTimeType("2016-02-29T23:00:00+03:00");
205
206         cases[40][0] = TEST_MOON_THING_ID;
207         cases[40][1] = "rise#end";
208         cases[40][2] = new DateTimeType("2016-02-29T23:00:00+03:00");
209
210         cases[41][0] = TEST_MOON_THING_ID;
211         cases[41][1] = "rise#duration";
212         cases[41][2] = new QuantityType<>(0, Units.MINUTE);
213     }
214
215     public List<Object[]> getCases() {
216         return Arrays.asList(cases);
217     }
218 }