3 * Copyright (c) 2013-2014 Cisco Systems, Inc. and others. All rights reserved.
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 * and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.controller.sal.packet;
12 import org.junit.Assert;
14 import org.junit.Test;
15 import org.opendaylight.controller.sal.match.Match;
16 import org.opendaylight.controller.sal.match.MatchType;
18 public class TCPTest {
21 public void testSetSourcePort() {
23 short tcpSourcePort = 118;
24 tcp.setSourcePort(tcpSourcePort);
25 byte[] sourcePort = tcp.hdrFieldsMap.get(TCP.SRCPORT);
26 Assert.assertTrue(sourcePort[0] == 0);
27 Assert.assertTrue(sourcePort[1] == 118);
32 public void testSetDestinationPort() {
34 short tcpDestinationPort = 443;
35 tcp.setDestinationPort(tcpDestinationPort);
36 byte[] destinationPort = tcp.hdrFieldsMap.get(TCP.DESTPORT);
37 Assert.assertTrue(destinationPort[0] == 1);
38 Assert.assertTrue(destinationPort[1] == -69);
43 public void testSetSequenceNumber() {
45 short tcpSequenceNumber = 700;
46 tcp.setSequenceNumber(tcpSequenceNumber);
47 byte[] sequenceNumber = tcp.hdrFieldsMap.get(TCP.SEQNUMBER);
48 Assert.assertTrue(sequenceNumber[0] == 0);
49 Assert.assertTrue(sequenceNumber[1] == 0);
50 Assert.assertTrue(sequenceNumber[2] == 2);
51 Assert.assertTrue(sequenceNumber[3] == -68);
55 public void testSetAckNumber() {
57 short tcpAckNumber = 697;
58 tcp.setAckNumber(tcpAckNumber);
59 byte[] ackNumber = tcp.hdrFieldsMap.get(TCP.ACKNUMBER);
60 Assert.assertTrue(ackNumber[0] == 0);
61 Assert.assertTrue(ackNumber[1] == 0);
62 Assert.assertTrue(ackNumber[2] == 2);
63 Assert.assertTrue(ackNumber[3] == -71);
67 public void testSetHeaderLenFlags() {
70 tcp.setHeaderLenFlags(tcpFlags);
71 byte[] headerLenFlags = tcp.hdrFieldsMap.get(TCP.HEADERLENFLAGS);
72 Assert.assertTrue(headerLenFlags[0] == 0);
73 Assert.assertTrue(headerLenFlags[1] == 26);
78 public void testSetWindowSize() {
80 short tcpWindowSize = 100;
81 tcp.setWindowSize(tcpWindowSize);
82 byte[] windowSize = tcp.hdrFieldsMap.get(TCP.WINDOWSIZE);
83 Assert.assertTrue(windowSize[0] == 0);
84 Assert.assertTrue(windowSize[1] == 100);
89 public void testSetChecksum() {
91 short tcpChecksum = 134;
92 tcp.setChecksum(tcpChecksum);
93 byte[] checksum = tcp.hdrFieldsMap.get(TCP.CHECKSUM);
94 Assert.assertTrue(checksum[0] == 0);
95 Assert.assertTrue(checksum[1] == -122);
100 public void testSetUrgentPointer() {
102 short tcpUrgentPointer = 25098;
103 tcp.setUrgentPointer(tcpUrgentPointer);
104 byte[] urgentPointer = tcp.hdrFieldsMap.get(TCP.URGENTPOINTER);
105 Assert.assertTrue(urgentPointer[0] == 98);
106 Assert.assertTrue(urgentPointer[1] == 10);
111 public void testGetChecksum() {
113 byte[] udpChecksum = { 0, -56 };
114 tcp.hdrFieldsMap.put("Checksum", udpChecksum);
115 short checksum = tcp.getChecksum();
116 Assert.assertTrue(checksum == 200);
120 public void testGetMatch() throws Exception {
122 short sport = (short) 52012;
123 short dport = (short) 40345;
124 tcp.setSourcePort(sport);
125 tcp.setDestinationPort(dport);
127 Match match = tcp.getMatch();
129 Assert.assertEquals(sport, (short) match.getField(MatchType.TP_SRC).getValue());
130 Assert.assertEquals(dport, (short) match.getField(MatchType.TP_DST).getValue());