use of com.zsmartsystems.zigbee.ZigBeeCommand in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZclClusterTest method unbind.
@Test
public void unbind() {
createNetworkManager();
ZigBeeNode node = new ZigBeeNode(networkManager, new IeeeAddress());
node.setNetworkAddress(1234);
ZigBeeEndpoint device = new ZigBeeEndpoint(networkManager, node, 5);
ZclCluster cluster = new ZclOnOffCluster(networkManager, device);
cluster.unbind(new IeeeAddress("1234567890ABCDEF"), 11);
assertEquals(1, commandCapture.getAllValues().size());
ZigBeeCommand command = commandCapture.getValue();
assertNotNull(command);
System.out.println(command);
assertTrue(command instanceof UnbindRequest);
UnbindRequest unbindCommand = (UnbindRequest) command;
assertEquals(new ZigBeeEndpointAddress(1234, 0), unbindCommand.getDestinationAddress());
assertEquals(new IeeeAddress("1234567890ABCDEF"), unbindCommand.getDstAddress());
assertEquals(Integer.valueOf(5), unbindCommand.getSrcEndpoint());
assertEquals(Integer.valueOf(11), unbindCommand.getDstEndpoint());
assertEquals(Integer.valueOf(3), unbindCommand.getDstAddrMode());
assertEquals(Integer.valueOf(0x0022), unbindCommand.getClusterId());
assertEquals(Integer.valueOf(6), unbindCommand.getBindCluster());
}
use of com.zsmartsystems.zigbee.ZigBeeCommand in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZclClusterTest method getReporting.
@Test
public void getReporting() {
createNetworkManager();
ZigBeeNode node = new ZigBeeNode(networkManager, new IeeeAddress());
node.setNetworkAddress(1234);
ZigBeeEndpoint device = new ZigBeeEndpoint(networkManager, node, 5);
ZclCluster cluster = new ZclOnOffCluster(networkManager, device);
ZclAttribute attribute = cluster.getAttribute(0);
cluster.getReporting(attribute);
assertEquals(1, commandCapture.getAllValues().size());
ZigBeeCommand command = commandCapture.getValue();
assertNotNull(command);
System.out.println(command);
assertTrue(command instanceof ReadReportingConfigurationCommand);
ReadReportingConfigurationCommand cfgCommand = (ReadReportingConfigurationCommand) command;
assertEquals(1, cfgCommand.getRecords().size());
AttributeRecord record = cfgCommand.getRecords().get(0);
assertEquals(0, record.getAttributeIdentifier());
assertEquals(0, record.getDirection());
}
use of com.zsmartsystems.zigbee.ZigBeeCommand in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZigBeeNetworkDiscovererTest method setupTest.
@Before
public void setupTest() {
networkManager = Mockito.mock(ZigBeeNetworkManager.class);
nodeCapture = ArgumentCaptor.forClass(ZigBeeNode.class);
// commandCapture = ArgumentCaptor.forClass(ZigBeeCommand.class);
// matcherCapture = ArgumentCaptor.forClass(CommandResponseMatcher.class);
// Mockito.when(networkManager.unicast(commandCapture.capture(), matcherCapture.capture())).thenReturn(null);
Mockito.doAnswer(new Answer<Future<CommandResult>>() {
@Override
public Future<CommandResult> answer(InvocationOnMock invocation) {
ZigBeeCommand command = (ZigBeeCommand) invocation.getArguments()[0];
CommandResultFuture commandFuture = new CommandResultFuture(networkManager);
CommandResult result = new CommandResult(responses.get(command.getClusterId()));
commandFuture.set(result);
return commandFuture;
}
}).when(networkManager).unicast(org.mockito.Matchers.any(ZigBeeCommand.class), org.mockito.Matchers.any(ZigBeeTransactionMatcher.class));
Mockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) {
Runnable runnable = (Runnable) invocation.getArguments()[0];
new Thread(runnable).start();
return null;
}
}).when(networkManager).executeTask(org.mockito.Matchers.any(Runnable.class));
}
use of com.zsmartsystems.zigbee.ZigBeeCommand in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZigBeeOtaServerTest method testNotify.
@Test
public void testNotify() {
ArgumentCaptor<ZigBeeCommand> mockedCommandCaptor = ArgumentCaptor.forClass(ZigBeeCommand.class);
NodeDescriptor nodeDescriptor = new NodeDescriptor();
IeeeAddress ieeeAddress = new IeeeAddress("1234567890ABCDEF");
ZigBeeEndpointAddress networkAddress = new ZigBeeEndpointAddress(1234, 56);
ZigBeeNetworkManager mockedNetworkManager = Mockito.mock(ZigBeeNetworkManager.class);
ZigBeeNode node = new ZigBeeNode(mockedNetworkManager, ieeeAddress);
node.setNetworkAddress(networkAddress.getAddress());
node.setNodeDescriptor(nodeDescriptor);
ZigBeeEndpoint endpoint = new ZigBeeEndpoint(mockedNetworkManager, node, networkAddress.getEndpoint());
// device.setIeeeAddress(ieeeAddress);
List<Integer> outClusters = new ArrayList<Integer>();
outClusters.add(ZclOtaUpgradeCluster.CLUSTER_ID);
endpoint.setOutputClusterIds(outClusters);
ZigBeeOtaStatusCallback mockedCallback = Mockito.mock(ZigBeeOtaStatusCallback.class);
otaStatusCapture = new ArrayList<ZigBeeOtaServerStatus>();
Set<ZigBeeEndpoint> devices = new HashSet<ZigBeeEndpoint>();
devices.add(endpoint);
Mockito.when(mockedNetworkManager.getNode((IeeeAddress) Matchers.anyObject())).thenReturn(node);
// Mockito.when(mockedNetworkManager.getDevice((ZigBeeAddress) Matchers.anyObject())).thenReturn(endpoint);
// Mockito.when(mockedNetworkManager.getNodeDevices((IeeeAddress) Matchers.anyObject())).thenReturn(devices);
// ZigBeeTransportTransmit mockedTransport = Mockito.mock(ZigBeeTransportTransmit.class);
// ArgumentCaptor<ZigBeeApsFrame> mockedApsFrameListener = ArgumentCaptor.forClass(ZigBeeApsFrame.class);
// try {
// Mockito.doNothing().when(mockedTransport).sendCommand(mockedApsFrameListener.capture());
// } catch (ZigBeeException e) {
// e.printStackTrace();
// }
Mockito.doAnswer(new Answer<Integer>() {
@Override
public Integer answer(InvocationOnMock invocation) {
return 0;
}
}).when(mockedNetworkManager).sendCommand(mockedCommandCaptor.capture());
Mockito.doAnswer(new Answer<Future<CommandResult>>() {
@Override
public Future<CommandResult> answer(InvocationOnMock invocation) {
return null;
}
}).when(mockedNetworkManager).unicast(mockedCommandCaptor.capture(), (ZigBeeTransactionMatcher) Matchers.anyObject());
ZclOtaUpgradeCluster cluster = new ZclOtaUpgradeCluster(mockedNetworkManager, endpoint);
ZigBeeOtaServer server = new ZigBeeOtaServer();
assertTrue(server.appStartup(cluster));
server.addListener(this);
ZigBeeOtaFile otaFile = Mockito.mock(ZigBeeOtaFile.class);
// Set the firmware and send notification
server.setFirmware(otaFile);
assertEquals(1, mockedCommandCaptor.getAllValues().size());
org.awaitility.Awaitility.await().until(otaListenerUpdated(), org.hamcrest.Matchers.equalTo(1));
assertEquals(1, otaStatusCapture.size());
ZigBeeOtaServerStatus status = otaStatusCapture.get(0);
assertEquals(ZigBeeOtaServerStatus.OTA_WAITING, status);
ZigBeeCommand command = mockedCommandCaptor.getValue();
assertEquals(Integer.valueOf(0x19), command.getClusterId());
assertTrue(command instanceof ImageNotifyCommand);
ImageNotifyCommand notifyCommand = (ImageNotifyCommand) command;
assertEquals(new ZigBeeEndpointAddress(1234, 56), notifyCommand.getDestinationAddress());
assertTrue(notifyCommand.getQueryJitter() >= 1 && notifyCommand.getQueryJitter() <= 100);
}
use of com.zsmartsystems.zigbee.ZigBeeCommand in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZclClusterTest method bind.
@Test
public void bind() {
createNetworkManager();
ZigBeeNode node = new ZigBeeNode(networkManager, new IeeeAddress());
node.setNetworkAddress(1234);
ZigBeeEndpoint device = new ZigBeeEndpoint(networkManager, node, 5);
ZclCluster cluster = new ZclOnOffCluster(networkManager, device);
cluster.bind(new IeeeAddress("1234567890ABCDEF"), 11);
assertEquals(1, commandCapture.getAllValues().size());
ZigBeeCommand command = commandCapture.getValue();
assertNotNull(command);
System.out.println(command);
assertTrue(command instanceof BindRequest);
BindRequest bindCommand = (BindRequest) command;
assertEquals(new ZigBeeEndpointAddress(1234, 0), bindCommand.getDestinationAddress());
assertEquals(new IeeeAddress("1234567890ABCDEF"), bindCommand.getDstAddress());
assertEquals(Integer.valueOf(5), bindCommand.getSrcEndpoint());
assertEquals(Integer.valueOf(11), bindCommand.getDstEndpoint());
assertEquals(Integer.valueOf(3), bindCommand.getDstAddrMode());
assertEquals(Integer.valueOf(0x0021), bindCommand.getClusterId());
assertEquals(Integer.valueOf(6), bindCommand.getBindCluster());
}
Aggregations