public UdpPacketTest() throws Exception { this.srcPort = UdpPort.SNMP; this.dstPort = UdpPort.getInstance((short) 0); this.length = (short) 12; this.checksum = (short) 0xABCD; try { this.srcAddr = (Inet6Address) InetAddress.getByName("2001:db8::3:2:1"); this.dstAddr = (Inet6Address) InetAddress.getByName("2001:db8::3:2:2"); } catch (UnknownHostException e) { throw new AssertionError(); } UnknownPacket.Builder unknownb = new UnknownPacket.Builder(); unknownb.rawData(new byte[] {(byte) 0, (byte) 1, (byte) 2, (byte) 3}); UdpPacket.Builder b = new UdpPacket.Builder(); b.dstPort(dstPort) .srcPort(srcPort) .length(length) .checksum(checksum) .correctChecksumAtBuild(false) .correctLengthAtBuild(false) .payloadBuilder(unknownb); this.packet = b.build(); }
@Test public void testHasValidChecksum() { UdpPacket.Builder b = packet.getBuilder(); b.srcAddr(srcAddr).dstAddr(dstAddr); UdpPacket p = b.correctChecksumAtBuild(false).build(); assertFalse(packet.hasValidChecksum(srcAddr, dstAddr, false)); assertFalse(packet.hasValidChecksum(srcAddr, dstAddr, true)); b.checksum((short) 0).correctChecksumAtBuild(false); p = b.build(); assertFalse(p.hasValidChecksum(srcAddr, dstAddr, false)); assertTrue(p.hasValidChecksum(srcAddr, dstAddr, true)); b.correctChecksumAtBuild(true); p = b.build(); assertTrue(p.hasValidChecksum(srcAddr, dstAddr, false)); assertTrue(p.hasValidChecksum(srcAddr, dstAddr, true)); }