/*
* Copyright 2010 NCHOVY
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.krakenapps.pcap;
import org.junit.Test;
import org.krakenapps.pcap.util.Buffer;
import org.krakenapps.pcap.util.ChainBuffer;
public class ChainBufferTest2 {
@Test
public void bufferAddTest() {
Buffer b = new ChainBuffer();
Buffer b1 = new ChainBuffer();
setData(b, b1);
/* beforehand fetch to 2 elements */
b1.get();
b1.get();
b1.discardReadBytes();
b.addLast(b1);
printResult(b);
}
@Test
public void bufferAddTest2() {
Buffer b = new ChainBuffer();
Buffer b1 = new ChainBuffer();
setData(b, b1);
b.addLast(b1);
printResult(b);
}
@Test
public void bufferAddTest3() {
Buffer b = new ChainBuffer();
Buffer b1 = new ChainBuffer();
setData(b, b1);
b1.get();
b1.get();
b1.get();
b1.get();
b1.discardReadBytes();
b.addLast(b1);
printResult(b);
}
@Test
public void bufferAddTest4() {
Buffer b = new ChainBuffer();
Buffer b1 = new ChainBuffer();
setData(b, b1);
byte[] temp = new byte[12];
b1.gets(temp);
/* case: Out of range then don't discard. */
b1.discardReadBytes();
b.addLast(b1);
printResult(b);
}
@Test
public void bufferAddTest5() {
Buffer b = new ChainBuffer();
Buffer b1 = new ChainBuffer();
setData(b, b1);
byte[] temp = new byte[11];
b1.gets(temp);
b1.discardReadBytes();
b.addLast(b1);
printResult(b);
}
private void setData(Buffer b1, Buffer b2) {
byte[] t = new byte[] { 101, 102, 103, 104 };
byte[] t1 = new byte[] { 105, 106, 107, 108, 109 };
byte[] t2 = new byte[] { 110, 111, 112 };
byte[] r = new byte[] { 1, 2, 3, 4 };
byte[] r1 = new byte[] { 5, 6, 7, 8, 9 };
byte[] r2 = new byte[] { 10, 11, 12 };
if(b1 != null) {
b1.addLast(t);
b1.addLast(t1);
b1.addLast(t2);
}
if(b2 != null) {
b2.addLast(r);
b2.addLast(r1);
b2.addLast(r2);
}
}
private void printResult(Buffer b) {
int capa = b.readableBytes();
byte[] t = new byte[capa];
b.gets(t);
System.out.println();
for(byte t1: t) {
System.out.printf("%d:", t1);
}
}
}