private void fireFree(byte[] address, int detectorNumber, Long timestamp) { synchronized (messageListeners) { for (MessageListener l : messageListeners) { l.occupation(address, detectorNumber, OccupationState.FREE, timestamp); } } }
private void fireOccupied(byte[] address, int detectorNumber, Long timestamp) { synchronized (messageListeners) { for (MessageListener l : messageListeners) { l.occupation(address, detectorNumber, OccupationState.OCCUPIED, timestamp); } } }
Mockito.verify(messageListener, Mockito.never()).occupation(address, 2, OccupationState.OCCUPIED, null); Mockito.verify(messageListener, Mockito.times(1)).occupation(address, 0, OccupationState.FREE, null); Mockito.verify(messageListener, Mockito.times(1)).occupation(address, 2, OccupationState.FREE, null); Mockito.verify(messageListener, Mockito.times(1)).occupation(address, 7, OccupationState.FREE, null); Mockito.verify(messageListener, Mockito.times(1)).occupation(address, 8, OccupationState.OCCUPIED, null);
@Test public void receiveFeedbackMultipleResponseOccupiedTest() throws IOException { byte[] address = new byte[] { 2 }; NodeRegistry nodeFactory = Mockito.mock(NodeRegistry.class); BidibNode bidibNode = Mockito.mock(BidibNode.class); MessageListener messageListener = Mockito.mock(MessageListener.class); // prepare the object to test SerialMessageReceiver receiver = new SerialMessageReceiver(nodeFactory); receiver.addMessageListener(messageListener); // set the receive queue // 30.03.2016 07:50:26.860: - << [17] - 0E 02 00 48 A2 00 40 FF FF FF FF FF FF FF FF 1B FE // ByteArrayInputStream is = // new ByteArrayInputStream(new byte[] { (byte) 0xfe, 0x16, (byte) 0x01, (byte) 0x00, (byte) 0x06, // (byte) 0xa2, (byte) 0x00, (byte) 0x80, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, // (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, // (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0x1B, (byte) 0xfe }); byte[] data = new byte[] { (byte) 0x0E, 0x02, 0x00, 0x48, (byte) 0xA2, (byte) 0x00, (byte) 0x40, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0x1B, (byte) 0xfe }; Mockito.when(nodeFactory.findNode(address)).thenReturn(bidibNode); Mockito.when(bidibNode.getNextReceiveMsgNum(Mockito.any(BidibMessage.class))).thenReturn(Integer.valueOf(72)); receiver.receive(pack(data)); // verify that only occupied was called once Mockito.verify(messageListener, Mockito.never()).occupation(address, 2, OccupationState.FREE, null); // feedback 2 is occupied Mockito.verify(messageListener, Mockito.times(1)).occupation(address, 2, OccupationState.OCCUPIED, null); }