Files
JIMRI/java/test/jmri/jmrix/ieee802154/xbee/XBeeNodeTest.java
T
2026-06-17 14:00:51 +02:00

182 lines
7.3 KiB
Java

package jmri.jmrix.ieee802154.xbee;
import com.digi.xbee.api.RemoteXBeeDevice;
import com.digi.xbee.api.models.XBee16BitAddress;
import com.digi.xbee.api.models.XBee64BitAddress;
import org.junit.Assert;
import org.junit.jupiter.api.*;
/**
* XBeeNodeTest.java
*
* Test for the jmri.jmrix.ieee802154.xbee.XBeeNode class
*
* @author Paul Bender Copyright (C) 2016
*/
public class XBeeNodeTest{
private XBeeTrafficController tc = null;
@Test
public void testCtor() {
XBeeNode m = new XBeeNode();
Assert.assertNotNull("exists", m);
}
@Test
public void testCtorWithParamters() {
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0x6D, (byte) 0x97};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
node.setTrafficController(tc);
Assert.assertNotNull("exists", node);
Assert.assertEquals("Node PAN address high byte", pan[0], node.getPANAddress()[0]);
Assert.assertEquals("Node PAN address low byte", pan[1], node.getPANAddress()[1]);
Assert.assertEquals("Node user address high byte", uad[0], node.getUserAddress()[0]);
Assert.assertEquals("Node user address low byte", uad[1], node.getUserAddress()[1]);
for (int i = 0; i < gad.length; i++) {
Assert.assertEquals("Node global address byte " + i, gad[i], node.getGlobalAddress()[i]);
}
}
@Test
public void testSetPANAddress() {
// test the code to set the User address
XBeeNode node = new XBeeNode();
byte pan[] = {(byte) 0x00, (byte) 0x01};
node.setPANAddress(pan);
Assert.assertEquals("Node PAN address high byte", pan[0], node.getPANAddress()[0]);
Assert.assertEquals("Node PAN address low byte", pan[1], node.getPANAddress()[1]);
}
@Test
public void testSetUserAddress() {
// test the code to set the User address
XBeeNode node = new XBeeNode();
byte uad[] = {(byte) 0x6D, (byte) 0x97};
node.setUserAddress(uad);
Assert.assertEquals("Node user address high byte", uad[0], node.getUserAddress()[0]);
Assert.assertEquals("Node user address low byte", uad[1], node.getUserAddress()[1]);
}
@Test
public void testSetGlobalAddress() {
// test the code to set the User address
XBeeNode node = new XBeeNode();
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
node.setGlobalAddress(gad);
for (int i = 0; i < gad.length; i++) {
Assert.assertEquals("Node global address byte " + i, gad[i], node.getGlobalAddress()[i]);
}
}
@Test
public void testGetPreferedNameAsUserAddress() {
RemoteXBeeDevice rd = new RemoteXBeeDevice(tc.getXBee(),
new XBee64BitAddress("0013A20040A04D2D"),
new XBee16BitAddress("6D97"),
"");
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0x6D, (byte) 0x97};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
node.setXBee(rd);
tc.registerNode(node);
Assert.assertEquals("Short Address Name","6D 97 ",node.getPreferedName());
}
@Test
public void testGetPreferedNameAsGlobalAddress() {
RemoteXBeeDevice rd = new RemoteXBeeDevice(tc.getXBee(),
new XBee64BitAddress("0013A20040A04D2D"),
new XBee16BitAddress("FFFE"),
"");
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0xFF, (byte) 0xFE};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
tc.registerNode(node);
node.setXBee(rd);
Assert.assertEquals("Global Address Name","00 13 A2 00 40 A0 4D 2D ",node.getPreferedName());
}
@Test
public void testGetPreferedNameAsNodeIdentifier() {
RemoteXBeeDevice rd = new RemoteXBeeDevice(tc.getXBee(),
new XBee64BitAddress("0013A20040A04D2D"),
new XBee16BitAddress("FFFF"),
"Hello World");
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0xFF, (byte) 0xFF};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
node.setXBee(rd);
node.setIdentifier("Hello World");
tc.registerNode(node);
Assert.assertEquals("Identifier Name",node.getPreferedName(),"Hello World");
}
@Test
public void testGetPreferedTransmitUserAddress() {
RemoteXBeeDevice rd = new RemoteXBeeDevice(tc.getXBee(),
new XBee64BitAddress("0013A20040A04D2D"),
new XBee16BitAddress("6D97"),
"");
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0x6D, (byte) 0x97};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
node.setXBee(rd);
tc.registerNode(node);
Assert.assertEquals("Short Transmit Address",node.getXBeeAddress16(),node.getPreferedTransmitAddress());
}
@Test
public void testGetPreferedTransmitGlobalAddress() {
RemoteXBeeDevice rd = new RemoteXBeeDevice(tc.getXBee(),
new XBee64BitAddress("0013A20040A04D2D"),
new XBee16BitAddress("FFFF"),
"");
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0xFF, (byte) 0xFF};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
node.setXBee(rd);
tc.registerNode(node);
Assert.assertEquals("Global Transmit Address",node.getXBeeAddress64(),node.getPreferedTransmitAddress());
}
@Test
public void testGetPreferedTransmitGlobalAddressWithMaskRequired() {
RemoteXBeeDevice rd = new RemoteXBeeDevice(tc.getXBee(),
new XBee64BitAddress("0013A20040A04D2D"),
new XBee16BitAddress("FFFF"),
"");
byte pan[] = {(byte) 0x00, (byte) 0x42};
byte uad[] = {(byte) 0x0fffffff, (byte) 0x0ffffffe};
byte gad[] = {(byte) 0x00, (byte) 0x13, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xA0, (byte) 0x4D, (byte) 0x2D};
XBeeNode node = new XBeeNode(pan,uad,gad);
node.setXBee(rd);
tc.registerNode(node);
Assert.assertEquals("Global Transmit Address",node.getXBeeAddress64(),node.getPreferedTransmitAddress());
}
@BeforeEach
public void setUp() {
jmri.util.JUnitUtil.setUp();
tc = new XBeeInterfaceScaffold();
}
@AfterEach
public void tearDown() {
((XBeeInterfaceScaffold)tc).dispose();
tc = null;
jmri.util.JUnitUtil.clearShutDownManager(); // put in place because AbstractMRTrafficController implementing subclass was not terminated properly
jmri.util.JUnitUtil.tearDown();
}
}