+ /**
+ * Test of {@link LLDP#addCustomTLV(LLDPTLV)}
+ * @throws PacketException
+ */
+ @Test
+ public void testAddCustomTLV() throws PacketException {
+ byte[] customA = awaitedBytes((byte) 0b11111110, CUSTOM_SUBTYPE_A_LENGTH, CUSTOM_SUBTYPE_A_VALUE,
+ BYTES_BEFORE_CUSTOM_A);
+ byte[] customB = awaitedBytes((byte) 0b11111110, CUSTOM_SUBTYPE_B_LENGTH, CUSTOM_SUBTYPE_B_VALUE,
+ BYTES_BEFORE_CUSTOM_B);
+
+ Packet lldptlvA = new LLDPTLV().deserialize(customA, 0, customA.length);
+ assertTrue(lldptlvA instanceof LLDPTLV);
+ Packet lldptlvB = new LLDPTLV().deserialize(customB, 0, customB.length);
+ assertTrue(lldptlvB instanceof LLDPTLV);
+
+ lldpBuilder.addCustomTLV((LLDPTLV) lldptlvA);
+ lldpBuilder.addCustomTLV((LLDPTLV) lldptlvB);
+
+ Iterator<LLDPTLV> customTLVsIterator = lldpBuilder.getCustomTlvList().iterator();
+ assertTrue(customTLVsIterator.hasNext());
+ customTLVsIterator.next();
+ assertTrue(customTLVsIterator.hasNext());
+ customTLVsIterator.next();
+ assertFalse(customTLVsIterator.hasNext());
+ }
+
+ @Test
+ public void testGetCustomTLV() throws PacketException {
+ int ouiInt = BitBufferHelper.getInt(OUI);
+ CustomTLVKey key = new CustomTLVKey(ouiInt, OUI_SUBTYPE_A[0]);
+ LLDPTLV customTLV = lldpBuilder.getCustomTLV(key);
+ assertNull(customTLV);
+
+ byte[] customA = awaitedBytes((byte) 0b11111110, CUSTOM_SUBTYPE_A_LENGTH, CUSTOM_SUBTYPE_A_VALUE,
+ BYTES_BEFORE_CUSTOM_A);
+ lldpBuilder.deserialize(customA, 0, customA.length);
+
+ customTLV = lldpBuilder.getCustomTLV(key);
+ assertNotNull(customTLV);
+ assertEquals(ouiInt, LLDPTLV.extractCustomOUI(customTLV));
+ assertEquals(OUI_SUBTYPE_A[0], LLDPTLV.extractCustomSubtype(customTLV));