protected void messageReceived(final BidibNode bidibNode, final BidibMessage message) { // put the message into the receiveQueue because somebody waits for it ... LOGGER.debug("Offer received message to node: {}, message: {}", bidibNode, message); try { bidibNode.addResponseToReceiveQueue(message); } catch (Exception ex) { LOGGER.error("Offer received message to node failed. Message was: " + message, ex); } }
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
@Test public void receiveNodeTabResponseTest() throws IOException, ProtocolException { NodeRegistry nodeFactory = Mockito.mock(NodeRegistry.class); BidibNode bidibNode = Mockito.mock(BidibNode.class); MessageListener messageListener = Mockito.mock(MessageListener.class); BlockingQueue<BidibMessage> receiveQueue = Mockito.mock(BlockingQueue.class); SerialMessageReceiver receiver = new SerialMessageReceiver(nodeFactory); receiver.addMessageListener(messageListener); // set the receive queue // 11.08.2013 22:38:40.383: receive NodeTabResponse[[1, 0],num=2,type=137,data=[1, 0, 129, 0, 13, 114, 0, 31, // 0]] : 0d 01 00 02 89 01 00 81 00 0d 72 00 1f 00 byte[] message = new byte[] { 0x0d, 0x01, 0x00, 0x02, (byte) 0x89, 0x01, 0x00, (byte) 0x81, 0x00, (byte) 0x0d, (byte) 0x72, 0x00, 0x1f, 0x00, (byte) 0xFE }; final byte[] nodeAddress = new byte[] { 1 }; Mockito.when(nodeFactory.findNode(nodeAddress)).thenReturn(bidibNode); Mockito.when(bidibNode.getNextReceiveMsgNum(Mockito.any(BidibMessage.class))).thenReturn(Integer.valueOf(2)); // Mockito.when(bidibNode.getReceiveQueue()).thenReturn(receiveQueue); Mockito.doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); receiveQueue.offer((BidibMessage) args[0]); return null; } }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class)); receiver.receive(pack(message)); BidibMessage response = new BidibResponseFactory().create(message); // verify that message was signaled Mockito.verify(receiveQueue, Mockito.times(1)).offer(response); }
@Test public void receiveMagicResponseTest() throws IOException, ProtocolException { NodeRegistry nodeFactory = Mockito.mock(NodeRegistry.class); BidibNode bidibNode = Mockito.mock(BidibNode.class); MessageListener messageListener = Mockito.mock(MessageListener.class); BlockingQueue<BidibMessage> receiveQueue = Mockito.mock(BlockingQueue.class); SerialMessageReceiver receiver = new SerialMessageReceiver(nodeFactory); receiver.addMessageListener(messageListener); // set the receive queue // 0x05, 0x00, 0x00, (byte) 0x81, (byte) 0xFD, (byte) 0xDE, (byte) 0xAF, (byte) 0x89, 0xFE byte[] rawmessage = new byte[] { 0x05, 0x00, 0x00, (byte) 0x81, (byte) 0xFD, (byte) 0xDE, (byte) 0xAF, (byte) 0x89, (byte) 0xFE }; byte[] message = new byte[] { 0x05, 0x00, 0x00, (byte) 0x81, (byte) 0xFE, (byte) 0xAF }; final byte[] nodeAddress = new byte[] { 0 }; Mockito.when(nodeFactory.findNode(nodeAddress)).thenReturn(bidibNode); Mockito.when(bidibNode.getNextReceiveMsgNum(Mockito.any(BidibMessage.class))).thenReturn(Integer.valueOf(0)); // Mockito.when(bidibNode.getReceiveQueue()).thenReturn(receiveQueue); Mockito.doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); receiveQueue.offer((BidibMessage) args[0]); return null; } }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class)); receiver.receive(pack(rawmessage)); BidibMessage response = new BidibResponseFactory().create(message); // verify that message was signaled Mockito.verify(receiveQueue, Mockito.times(1)).offer(response); }
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));
return null; }).when(bidibNode).addResponseToReceiveQueue(Mockito.any(BidibMessage.class));