Skip to content

Commit 62efe23

Browse files
authored
Merge pull request #47 from matchews/codex/add-xstream-alias-for-response-class
Alias Response element for XStream parsing in OmniLogic binding
2 parents ea0ac22 + e02c47f commit 62efe23

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

  • bundles/org.openhab.binding.haywardomnilogiclocal/src
    • main/java/org/openhab/binding/haywardomnilogiclocal/internal/net
    • test/java/org/openhab/binding/haywardomnilogiclocal/internal/net

bundles/org.openhab.binding.haywardomnilogiclocal/src/main/java/org/openhab/binding/haywardomnilogiclocal/internal/net/UdpClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class UdpClient {
5252

5353
static {
5454
XSTREAM.allowTypes(new Class[] { Message.class, Parameter.class });
55+
XSTREAM.alias("Response", Message.class);
5556
XSTREAM.setClassLoader(UdpClient.class.getClassLoader());
5657
XSTREAM.ignoreUnknownElements();
5758
XSTREAM.processAnnotations(Message.class);

bundles/org.openhab.binding.haywardomnilogiclocal/src/test/java/org/openhab/binding/haywardomnilogiclocal/internal/net/UdpClientTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.Arrays;
1515
import java.util.concurrent.atomic.AtomicBoolean;
1616
import java.util.zip.DeflaterOutputStream;
17+
import java.lang.reflect.Method;
1718

1819
import org.eclipse.jdt.annotation.NonNullByDefault;
1920
import org.junit.jupiter.api.Test;
@@ -105,6 +106,15 @@ public void sendShouldIgnoreAckAndProcessSubsequentData() throws Exception {
105106
assertTrue(ackAfterLead.get());
106107
}
107108

109+
@Test
110+
public void parseIntParameterShouldHandleResponseRoot() throws Exception {
111+
Method method = UdpClient.class.getDeclaredMethod("parseIntParameter", String.class, String.class);
112+
method.setAccessible(true);
113+
String xml = "<Response><Parameter name=\"Test\">42</Parameter></Response>";
114+
int value = (int) method.invoke(null, xml, "Test");
115+
assertEquals(42, value);
116+
}
117+
108118
@Test
109119
public void sendShouldHandleUncompressedMultiBlockResponse() throws Exception {
110120
final DatagramSocket server = new DatagramSocket(0);

0 commit comments

Comments
 (0)