|
1 | 1 | /** |
2 | | - * Copyright 2017, Digi International Inc. |
| 2 | + * Copyright 2017-2020, Digi International Inc. |
3 | 3 | * |
4 | 4 | * This Source Code Form is subject to the terms of the Mozilla Public |
5 | 5 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
@@ -1438,6 +1438,49 @@ public void testAddressesMatch16BitAddress() throws Exception { |
1438 | 1438 | assertFalse((Boolean)Whitebox.invokeMethod(xbeePacketsQueue, METHOD_ADDRESSES_MATCH, packet, mockedRemoteDevice)); |
1439 | 1439 | } |
1440 | 1440 |
|
| 1441 | + /** |
| 1442 | + * Test method for {@link com.digi.xbee.api.models.XBeePacketsQueue#addressesMatch(XBeePacket, RemoteXBeeDevice)}. |
| 1443 | + * |
| 1444 | + * <p>Verify that the {@code addressesMatch} method of the {@code XBeePacketsQueue} class works |
| 1445 | + * successfully when the device's 16-bit address is unknown.</p> |
| 1446 | + */ |
| 1447 | + @Test |
| 1448 | + public void testAddressesDontMatchUnkown16BitAddress() throws Exception { |
| 1449 | + ArrayList<XBeePacket> api16Packets = new ArrayList<XBeePacket>(); |
| 1450 | + |
| 1451 | + // Create a mocked remote XBee device. |
| 1452 | + RemoteXBeeDevice mockedRemoteDevice = Mockito.mock(RemoteXBeeDevice.class); |
| 1453 | + Mockito.when(mockedRemoteDevice.get64BitAddress()).thenReturn(xbee64BitAddress1); |
| 1454 | + Mockito.when(mockedRemoteDevice.get16BitAddress()).thenReturn(XBee16BitAddress.UNKNOWN_ADDRESS); |
| 1455 | + |
| 1456 | + // Fill the list of API packets. |
| 1457 | + api16Packets.add(mockedReceivePacket); |
| 1458 | + api16Packets.add(mockedRemoteATCommandPacket); |
| 1459 | + |
| 1460 | + // Create an XBeePacketsQueue. |
| 1461 | + XBeePacketsQueue xbeePacketsQueue = PowerMockito.spy(new XBeePacketsQueue()); |
| 1462 | + |
| 1463 | + // Verify the addresses don't match. |
| 1464 | + Mockito.when(mockedReceivePacket.get64bitSourceAddress()).thenReturn(xbee64BitAddress2); |
| 1465 | + Mockito.when(mockedReceivePacket.get16bitSourceAddress()).thenReturn(XBee16BitAddress.UNKNOWN_ADDRESS); |
| 1466 | + Mockito.when(mockedRemoteATCommandPacket.get64bitSourceAddress()).thenReturn(xbee64BitAddress2); |
| 1467 | + Mockito.when(mockedRemoteATCommandPacket.get16bitSourceAddress()).thenReturn(XBee16BitAddress.UNKNOWN_ADDRESS); |
| 1468 | + for (XBeePacket packet:api16Packets) |
| 1469 | + assertFalse((Boolean)Whitebox.invokeMethod(xbeePacketsQueue, METHOD_ADDRESSES_MATCH, packet, mockedRemoteDevice)); |
| 1470 | + |
| 1471 | + // Verify the addresses don't match. |
| 1472 | + Mockito.when(mockedReceivePacket.get16bitSourceAddress()).thenReturn(xbee16BitAddress2); |
| 1473 | + Mockito.when(mockedRemoteATCommandPacket.get16bitSourceAddress()).thenReturn(xbee16BitAddress2); |
| 1474 | + for (XBeePacket packet:api16Packets) |
| 1475 | + assertFalse((Boolean)Whitebox.invokeMethod(xbeePacketsQueue, METHOD_ADDRESSES_MATCH, packet, mockedRemoteDevice)); |
| 1476 | + |
| 1477 | + // Verify the addresses match. |
| 1478 | + Mockito.when(mockedReceivePacket.get64bitSourceAddress()).thenReturn(xbee64BitAddress1); |
| 1479 | + Mockito.when(mockedRemoteATCommandPacket.get64bitSourceAddress()).thenReturn(xbee64BitAddress1); |
| 1480 | + for (XBeePacket packet:api16Packets) |
| 1481 | + assertTrue((Boolean)Whitebox.invokeMethod(xbeePacketsQueue, METHOD_ADDRESSES_MATCH, packet, mockedRemoteDevice)); |
| 1482 | + } |
| 1483 | + |
1441 | 1484 | /** |
1442 | 1485 | * Test method for {@link com.digi.xbee.api.models.XBeePacketsQueue#ipAddressesMatch(XBeePacket, Inet4Address)}. |
1443 | 1486 | * |
|
0 commit comments