package com.koushikdutta.async.test; import com.koushikdutta.async.ByteBufferList; import com.koushikdutta.async.FilteredDataEmitter; import com.koushikdutta.async.PushParser; import com.koushikdutta.async.TapCallback; import com.koushikdutta.async.Util; import com.koushikdutta.async.callback.DataCallback; import junit.framework.TestCase; /** * Created by koush on 5/17/13. */ public class ByteUtilTests extends TestCase { int valRead; public void testPushParserUntil() { valRead = 0; FilteredDataEmitter mock = new FilteredDataEmitter() { @Override public boolean isPaused() { return false; } }; new PushParser(mock) .until((byte)0, new DataCallback.NullDataCallback()) .readInt(new PushParser.ParseCallback<Integer>() { public void parsed(Integer arg) { valRead = arg; } }); byte[] bytes = new byte[] { 5, 5, 5, 5, 0, 10, 5, 5, 5 }; Util.emitAllData(mock, new ByteBufferList(bytes)); assertEquals(valRead, 0x0A050505); } public void testPushParserTapUntil() { valRead = 0; FilteredDataEmitter mock = new FilteredDataEmitter() { @Override public boolean isPaused() { return false; } }; new PushParser(mock) .until((byte)0, new DataCallback.NullDataCallback()) .readInt() .tap(new TapCallback() { public void parsed(int arg) { valRead = arg; } }); byte[] bytes = new byte[] { 5, 5, 5, 5, 0, 10, 5, 5, 5 }; Util.emitAllData(mock, new ByteBufferList(bytes)); assertEquals(valRead, 0x0A050505); } int readInt; byte readByte; String readString; public void testTapCallback() { readInt = 0; readByte = 0; readString = ""; FilteredDataEmitter mock = new FilteredDataEmitter() { @Override public boolean isPaused() { return false; } }; new PushParser(mock) .readInt() .readByte() .readString() .tap(new TapCallback() { void tap(int i, byte b, String s) { readInt = i; readByte = b; readString = s; } }); byte[] bytes = new byte[] { 10, 5, 5, 5, 3, 0, 0, 0, 4, 116, 101, 115, 116 }; Util.emitAllData(mock, new ByteBufferList(bytes)); assertEquals(readInt, 0x0A050505); assertEquals(readByte, (byte) 3); assertEquals(readString, "test"); } }