From 12b0908806d9f482960a0fd6e3d7106900101d2a Mon Sep 17 00:00:00 2001 From: Christoph Weitkamp Date: Wed, 31 Mar 2021 21:42:33 +0200 Subject: [PATCH] Set channel states to UNDEF instead of NULL; Fixed SAT warnings (#10421) Signed-off-by: Christoph Weitkamp --- .../org.openhab.binding.dwdunwetter/README.md | 4 +-- .../{data => dto}/DwdWarningCache.java | 2 +- .../{data => dto}/DwdWarningData.java | 2 +- .../{data => dto}/DwdWarningDataAccess.java | 2 +- .../{data => dto}/DwdWarningsData.java | 24 +++++++-------- .../internal/{data => dto}/DwdXmlTag.java | 2 +- .../internal/{data => dto}/Severity.java | 2 +- .../{data => dto}/SeverityComparator.java | 2 +- .../internal/{data => dto}/Urgency.java | 2 +- .../internal/handler/DwdUnwetterHandler.java | 2 +- .../OH-INF/i18n/dwdunwetter_de.properties | 26 ++++++++-------- .../resources/OH-INF/thing/thing-types.xml | 30 +++++++++++-------- .../{data => dto}/DwdWarningCacheTest.java | 4 +-- .../{data => dto}/DwdWarningsDataTest.java | 29 ++++++++++-------- .../internal/{data => dto}/warnings.xml | 0 15 files changed, 70 insertions(+), 63 deletions(-) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdWarningCache.java (97%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdWarningData.java (98%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdWarningDataAccess.java (97%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdWarningsData.java (93%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdXmlTag.java (96%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/Severity.java (95%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/SeverityComparator.java (95%) rename bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/Urgency.java (94%) rename bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdWarningCacheTest.java (92%) rename bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/{data => dto}/DwdWarningsDataTest.java (88%) rename bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/{data => dto}/warnings.xml (100%) diff --git a/bundles/org.openhab.binding.dwdunwetter/README.md b/bundles/org.openhab.binding.dwdunwetter/README.md index 4d57b4094..b8ee20103 100644 --- a/bundles/org.openhab.binding.dwdunwetter/README.md +++ b/bundles/org.openhab.binding.dwdunwetter/README.md @@ -132,7 +132,9 @@ then end ``` + dwdunwetter_de.map + ``` ON=aktiv OFF=inaktiv @@ -151,8 +153,6 @@ NULL=undefiniert UNDEF=undefiniert ``` - - dwdunwetter_urgency_de.map ``` diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCache.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningCache.java similarity index 97% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCache.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningCache.java index decccf123..308d597bb 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCache.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningCache.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.time.Instant; import java.time.temporal.ChronoUnit; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningData.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningData.java similarity index 98% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningData.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningData.java index 389fe9e38..d33543fff 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningData.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningData.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.math.BigDecimal; import java.time.Instant; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningDataAccess.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningDataAccess.java similarity index 97% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningDataAccess.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningDataAccess.java index 9c54ae05c..b660f7b81 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningDataAccess.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningDataAccess.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.io.IOException; import java.net.URLEncoder; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsData.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningsData.java similarity index 93% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsData.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningsData.java index 08d031e7e..5b92feb90 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsData.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningsData.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.io.StringReader; import java.math.BigDecimal; @@ -218,18 +218,18 @@ public class DwdWarningsData { public State getSeverity(int number) { DwdWarningData data = getGemeindeData(number); - return data == null ? UnDefType.NULL : StringType.valueOf(data.getSeverity().getText()); + return data == null ? UnDefType.UNDEF : StringType.valueOf(data.getSeverity().getText()); } public State getDescription(int number) { DwdWarningData data = getGemeindeData(number); - return data == null ? UnDefType.NULL : StringType.valueOf(data.getDescription()); + return data == null ? UnDefType.UNDEF : StringType.valueOf(data.getDescription()); } public State getEffective(int number) { DwdWarningData data = getGemeindeData(number); if (data == null) { - return UnDefType.NULL; + return UnDefType.UNDEF; } ZonedDateTime zoned = ZonedDateTime.ofInstant(data.getEffective(), ZoneId.systemDefault()); return new DateTimeType(zoned); @@ -238,7 +238,7 @@ public class DwdWarningsData { public State getExpires(int number) { DwdWarningData data = getGemeindeData(number); if (data == null) { - return UnDefType.NULL; + return UnDefType.UNDEF; } ZonedDateTime zoned = ZonedDateTime.ofInstant(data.getExpires(), ZoneId.systemDefault()); return new DateTimeType(zoned); @@ -247,7 +247,7 @@ public class DwdWarningsData { public State getOnset(int number) { DwdWarningData data = getGemeindeData(number); if (data == null) { - return UnDefType.NULL; + return UnDefType.UNDEF; } ZonedDateTime zoned = ZonedDateTime.ofInstant(data.getOnset(), ZoneId.systemDefault()); return new DateTimeType(zoned); @@ -255,18 +255,18 @@ public class DwdWarningsData { public State getEvent(int number) { DwdWarningData data = getGemeindeData(number); - return data == null ? UnDefType.NULL : StringType.valueOf(data.getEvent()); + return data == null ? UnDefType.UNDEF : StringType.valueOf(data.getEvent()); } public State getHeadline(int number) { DwdWarningData data = getGemeindeData(number); - return data == null ? UnDefType.NULL : StringType.valueOf(data.getHeadline()); + return data == null ? UnDefType.UNDEF : StringType.valueOf(data.getHeadline()); } public State getAltitude(int number) { DwdWarningData data = getGemeindeData(number); if (data == null) { - return UnDefType.NULL; + return UnDefType.UNDEF; } return new QuantityType<>(data.getAltitude(), ImperialUnits.FOOT); } @@ -274,19 +274,19 @@ public class DwdWarningsData { public State getCeiling(int number) { DwdWarningData data = getGemeindeData(number); if (data == null) { - return UnDefType.NULL; + return UnDefType.UNDEF; } return new QuantityType<>(data.getCeiling(), ImperialUnits.FOOT); } public State getInstruction(int number) { DwdWarningData data = getGemeindeData(number); - return data == null ? UnDefType.NULL : StringType.valueOf(data.getInstruction()); + return data == null ? UnDefType.UNDEF : StringType.valueOf(data.getInstruction()); } public State getUrgency(int number) { DwdWarningData data = getGemeindeData(number); - return data == null ? UnDefType.NULL : StringType.valueOf(data.getUrgency().getText()); + return data == null ? UnDefType.UNDEF : StringType.valueOf(data.getUrgency().getText()); } public boolean isNew(int number) { diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdXmlTag.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdXmlTag.java similarity index 96% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdXmlTag.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdXmlTag.java index 58c73c1fa..1081a888f 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/DwdXmlTag.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/DwdXmlTag.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.util.Arrays; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/Severity.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/Severity.java similarity index 95% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/Severity.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/Severity.java index 12cfb46cb..214ea8c4e 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/Severity.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/Severity.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.util.Arrays; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/SeverityComparator.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/SeverityComparator.java similarity index 95% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/SeverityComparator.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/SeverityComparator.java index e2bcadbc2..feb674060 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/SeverityComparator.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/SeverityComparator.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.util.Comparator; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/Urgency.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/Urgency.java similarity index 94% rename from bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/Urgency.java rename to bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/Urgency.java index 37c8664a5..b998cd9cc 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/data/Urgency.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/Urgency.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import java.util.Arrays; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/handler/DwdUnwetterHandler.java b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/handler/DwdUnwetterHandler.java index 76080e99a..e152337ae 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/handler/DwdUnwetterHandler.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/handler/DwdUnwetterHandler.java @@ -23,7 +23,7 @@ import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.dwdunwetter.internal.config.DwdUnwetterConfiguration; -import org.openhab.binding.dwdunwetter.internal.data.DwdWarningsData; +import org.openhab.binding.dwdunwetter.internal.dto.DwdWarningsData; import org.openhab.core.library.types.DateTimeType; import org.openhab.core.library.types.OnOffType; import org.openhab.core.thing.Channel; diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/i18n/dwdunwetter_de.properties b/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/i18n/dwdunwetter_de.properties index 58de55932..39e11adcb 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/i18n/dwdunwetter_de.properties +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/i18n/dwdunwetter_de.properties @@ -1,10 +1,10 @@ # binding binding.dwdunwetter.name = DWD Unwetter Binding -binding.dwdunwetter.description = Das DWD Unwetter Binding ermöglicht es über die API des DWD aktuelle Unwetterwarnungen abzurufen +binding.dwdunwetter.description = Das DWD Unwetter Binding ermöglicht es über die API des DWD aktuelle Unwetterwarnungen abzurufen. # thing types thing-type.dwdunwetter.dwdwarnings.label = DWD Unwetter Warnungen -thing-type.dwdunwetter.dwdwarnings.description = DWD Unwetterwarnungen für ein Gebiet +thing-type.dwdunwetter.dwdwarnings.description = DWD Unwetterwarnungen für ein Gebiet. thing-type.config.dwdunwetter.dwdwarnings.cellId.label=Cell-ID thing-type.config.dwdunwetter.dwdwarnings.cellId.description=ID der abzufragenden Zelle.\ @@ -20,29 +20,29 @@ Die Warnungen werden dabei nach Severity und dann nach Beginn sortiert. Die erst channel-type.dwdunwetter.warning.label = Warnung channel-type.dwdunwetter.warning.description = Steht auf ON, wenn eine Warning vorliegt, OFF wenn keine vorliegt.\ Es ist garantiert, dass wenn der Channel von OFF auf ON umspringt, die anderen Channels bereits gefüllt sind, mit Ausnahme des Trigger Channels.\ -Es ist garantiert, dass wenn der Channel von ON auf OFF umspringt, die anderen Channels erst danach auf NULL gesetzt werden. +Es ist garantiert, dass wenn der Channel von ON auf OFF umspringt, die anderen Channels erst danach auf UNDEF gesetzt werden. channel-type.dwdunwetter.updated.label = Aktualisiert channel-type.dwdunwetter.updated.description = Triggered, wenn eine Warnung das erste mal gesendet wird.\ Dies passiert als letztes, nachdem alle anderen Channels bereits gesetzt sind. channel-type.dwdunwetter.severity.label = Schwere-Grad channel-type.dwdunwetter.severity.description = Schwere-Grad der Warnung. Mögliche Werte sind Minor, Moderate, Severe und Extreme. channel-type.dwdunwetter.description.label = Beschreibung -channel-type.dwdunwetter.description.description = Klartext Beschreibung der Warnung +channel-type.dwdunwetter.description.description = Klartext Beschreibung der Warnung. channel-type.dwdunwetter.effective.label = Ausgegeben -channel-type.dwdunwetter.effective.description = Datum und Uhrzeit, wann die Warnung ausgegeben wurde +channel-type.dwdunwetter.effective.description = Datum und Uhrzeit, wann die Warnung ausgegeben wurde. channel-type.dwdunwetter.onset.label = Gültig ab -channel-type.dwdunwetter.onset.description = Datum und Uhrzeit, ab dem die Warnung gültig ist +channel-type.dwdunwetter.onset.description = Datum und Uhrzeit, ab dem die Warnung gültig ist. channel-type.dwdunwetter.expires.label = Gültig bis -channel-type.dwdunwetter.expires.description = Datum und Uhrzeit, bis zu dem die Warnung gültig ist +channel-type.dwdunwetter.expires.description = Datum und Uhrzeit, bis zu dem die Warnung gültig ist. channel-type.dwdunwetter.headline.label = Titel -channel-type.dwdunwetter.headline.description = Titel der Warnung z.B. "Amtliche Warnung vor FROST" +channel-type.dwdunwetter.headline.description = Titel der Warnung z.B. "Amtliche Warnung vor FROST". channel-type.dwdunwetter.event.label = Art -channel-type.dwdunwetter.event.description = Art der Warnung, z.B. FROST +channel-type.dwdunwetter.event.description = Art der Warnung, z.B. FROST. channel-type.dwdunwetter.altitude.label = Höhe von -channel-type.dwdunwetter.altitude.description = Höhe über dem Meeresspiegel, ab dem die Warnung gilt +channel-type.dwdunwetter.altitude.description = Höhe über dem Meeresspiegel, ab dem die Warnung gilt. channel-type.dwdunwetter.ceiling.label = Höhe bis -channel-type.dwdunwetter.ceiling.description = Höhe über dem Meeresspiegel, bis zu dem die Warnung gilt +channel-type.dwdunwetter.ceiling.description = Höhe über dem Meeresspiegel, bis zu dem die Warnung gilt. channel-type.dwdunwetter.urgency.label=Zeitrahmen -channel-type.dwdunwetter.urgency.description=Zeitrahmen der Meldung - Vorabinformation oder Warnung +channel-type.dwdunwetter.urgency.description=Zeitrahmen der Meldung - Vorabinformation oder Warnung. channel-type.dwdunwetter.instruction.label=Zusatztext -channel-type.dwdunwetter.instruction.description=Zusatztext zur Warnung (Instruktionen und Sicherheitshinweise) +channel-type.dwdunwetter.instruction.description=Zusatztext zur Warnung (Instruktionen und Sicherheitshinweise). diff --git a/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/thing/thing-types.xml index 5a25f8bee..94b644bc8 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.dwdunwetter/src/main/resources/OH-INF/thing/thing-types.xml @@ -6,9 +6,9 @@ - Weather Warnings for an area + Weather Warnings for an area. - + @@ -35,7 +35,8 @@ The warnings are sorted by severity first and begin second so the first warning DateTime - Timestamp of the last update from the endpoint + Timestamp of the last update from the endpoint. + Time @@ -43,14 +44,14 @@ The warnings are sorted by severity first and begin second so the first warning +Will be switched to OFF before all other channels are updated to UNDEF.]]> trigger +This happens after all other channels are populated.]]> @@ -79,49 +80,52 @@ This happens after all other channels are populated]]> DateTime - Issued Date and Time + Issued Date and Time. + Time DateTime - Start Date and Time for which the warning is valid + Start Date and Time for which the warning is valid. + Time DateTime - End Date and Time for which the warning is valid + End Date and Time for which the warning is valid. + Time String - Headline of the warning like "Amtliche Warnung vor FROST" + Headline of the warning like "Amtliche Warnung vor FROST". String - Type of the warning, e.g. FROST + Type of the warning, e.g. FROST. Number:Length - Lower Height above sea level for which the warning is valid + Lower Height above sea level for which the warning is valid. Number:Length - Upper Height above sea level for which the warning is valid + Upper Height above sea level for which the warning is valid. String - Instructions and safety information + Instructions and safety information. diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningCacheTest.java similarity index 92% rename from bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java rename to bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningCacheTest.java index cd66497a8..b56e28ab9 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningCacheTest.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningCacheTest.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -21,7 +21,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; /** - * Tests for {@link DwdWarningCache} + * Tests for {@link org.openhab.binding.dwdunwetter.internal.dto.DwdWarningCache} * * @author Martin Koehler - Initial contribution */ diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningsDataTest.java similarity index 88% rename from bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java rename to bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningsDataTest.java index 1a7a09587..03278062a 100644 --- a/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/data/DwdWarningsDataTest.java +++ b/bundles/org.openhab.binding.dwdunwetter/src/test/java/org/openhab/binding/dwdunwetter/internal/dto/DwdWarningsDataTest.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.dwdunwetter.internal.data; +package org.openhab.binding.dwdunwetter.internal.dto; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -30,14 +30,17 @@ import org.openhab.core.library.types.OnOffType; import org.openhab.core.types.UnDefType; /** - * Tests for {@link DwdWarningsData} + * Tests for {@link org.openhab.binding.dwdunwetter.internal.dto.DwdWarningsData} * + *

* Uses the warnings.xml from the resources directory instead of accessing the api endpoint. * + *

* The XML has 2 Entries: + * *

    - *
  1. Amtliche WARNUNG vor WINDBÖEN, MINOR
  2. - *
  3. Amtliche WARNUNG vor STURMBÖEN, MODERATE
  4. + *
  5. Amtliche WARNUNG vor WINDBÖEN, MINOR + *
  6. Amtliche WARNUNG vor STURMBÖEN, MODERATE *
* * @author Martin Koehler - Initial contribution @@ -60,21 +63,21 @@ public class DwdWarningsDataTest { public void testGetHeadline() { assertThat(warningsData.getHeadline(0), is("Amtliche WARNUNG vor STURMBÖEN")); assertThat(warningsData.getHeadline(1), is("Amtliche WARNUNG vor WINDBÖEN")); - assertThat(warningsData.getHeadline(2), is(UnDefType.NULL)); + assertThat(warningsData.getHeadline(2), is(UnDefType.UNDEF)); } @Test public void testGetSeverity() { assertThat(warningsData.getSeverity(0), is("Moderate")); assertThat(warningsData.getSeverity(1), is("Minor")); - assertThat(warningsData.getSeverity(2), is(UnDefType.NULL)); + assertThat(warningsData.getSeverity(2), is(UnDefType.UNDEF)); } @Test public void testGetEvent() { assertThat(warningsData.getEvent(0), is("STURMBÖEN")); assertThat(warningsData.getEvent(1), is("WINDBÖEN")); - assertThat(warningsData.getEvent(2), is(UnDefType.NULL)); + assertThat(warningsData.getEvent(2), is(UnDefType.UNDEF)); } @Test @@ -83,21 +86,21 @@ public class DwdWarningsDataTest { "Es treten Sturmböen mit Geschwindigkeiten zwischen 60 km/h (17m/s, 33kn, Bft 7) und 80 km/h (22m/s, 44kn, Bft 9) anfangs aus südwestlicher, später aus westlicher Richtung auf. In Schauernähe sowie in exponierten Lagen muss mit schweren Sturmböen um 90 km/h (25m/s, 48kn, Bft 10) gerechnet werden.")); assertThat(warningsData.getDescription(1), is( "Es treten Windböen mit Geschwindigkeiten bis 60 km/h (17m/s, 33kn, Bft 7) aus westlicher Richtung auf. In Schauernähe sowie in exponierten Lagen muss mit Sturmböen bis 80 km/h (22m/s, 44kn, Bft 9) gerechnet werden.")); - assertThat(warningsData.getDescription(2), is(UnDefType.NULL)); + assertThat(warningsData.getDescription(2), is(UnDefType.UNDEF)); } @Test public void testGetAltitude() { assertThat(warningsData.getAltitude(0).format("%.0f ft"), is("0 ft")); assertThat(warningsData.getAltitude(1).format("%.0f ft"), is("0 ft")); - assertThat(warningsData.getAltitude(2), is(UnDefType.NULL)); + assertThat(warningsData.getAltitude(2), is(UnDefType.UNDEF)); } @Test public void testGetCeiling() { assertThat(warningsData.getCeiling(0).format("%.0f ft"), is("9843 ft")); assertThat(warningsData.getCeiling(1).format("%.0f ft"), is("9843 ft")); - assertThat(warningsData.getCeiling(2), is(UnDefType.NULL)); + assertThat(warningsData.getCeiling(2), is(UnDefType.UNDEF)); } @Test @@ -107,7 +110,7 @@ public class DwdWarningsDataTest { .toString(), is("2018-12-22T18:00Z[UTC]")); assertThat(((DateTimeType) warningsData.getExpires(1)).getZonedDateTime().withZoneSameInstant(ZoneId.of("UTC")) .toString(), is("2018-12-23T01:00Z[UTC]")); - assertThat(warningsData.getExpires(2), is(UnDefType.NULL)); + assertThat(warningsData.getExpires(2), is(UnDefType.UNDEF)); } @Test @@ -117,7 +120,7 @@ public class DwdWarningsDataTest { .toString(), is("2018-12-21T10:00Z[UTC]")); assertThat(((DateTimeType) warningsData.getOnset(1)).getZonedDateTime().withZoneSameInstant(ZoneId.of("UTC")) .toString(), is("2018-12-22T18:00Z[UTC]")); - assertThat(warningsData.getOnset(2), is(UnDefType.NULL)); + assertThat(warningsData.getOnset(2), is(UnDefType.UNDEF)); } @Test @@ -127,7 +130,7 @@ public class DwdWarningsDataTest { .withZoneSameInstant(ZoneId.of("UTC")).toString(), is("2018-12-22T03:02Z[UTC]")); assertThat(((DateTimeType) warningsData.getEffective(1)).getZonedDateTime() .withZoneSameInstant(ZoneId.of("UTC")).toString(), is("2018-12-22T10:15Z[UTC]")); - assertThat(warningsData.getEffective(2), is(UnDefType.NULL)); + assertThat(warningsData.getEffective(2), is(UnDefType.UNDEF)); } @Test diff --git a/bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/data/warnings.xml b/bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/dto/warnings.xml similarity index 100% rename from bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/data/warnings.xml rename to bundles/org.openhab.binding.dwdunwetter/src/test/resources/org/openhab/binding/dwdunwetter/internal/dto/warnings.xml