SncpClientCodecTest

This commit is contained in:
redkale
2023-02-02 21:40:58 +08:00
parent 7f379f9874
commit 6973e6b159
13 changed files with 135 additions and 90 deletions

View File

@@ -0,0 +1,68 @@
/*
*
*/
package org.redkale.test.sncp;
import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.util.*;
import org.junit.jupiter.api.*;
import org.redkale.net.AsyncIOGroup;
import org.redkale.net.client.*;
import org.redkale.net.sncp.*;
import org.redkale.util.*;
/**
*
* @author zhangjx
*/
public class SncpClientCodecTest {
private boolean main;
public static void main(String[] args) throws Throwable {
SncpClientCodecTest test = new SncpClientCodecTest();
test.main = true;
test.run();
}
@Test
public void run() throws Exception {
InetSocketAddress sncpAddress = new InetSocketAddress("127.0.0.1", 3389);
InetSocketAddress remoteAddress = new InetSocketAddress("127.0.0.1", 3344);
final AsyncIOGroup asyncGroup = new AsyncIOGroup(8192, 16);
SncpClient client = new SncpClient("test", asyncGroup, sncpAddress, new ClientAddress(remoteAddress), Utility.cpus(), 16);
SncpClientConnection conn = client.createClientConnection(1, asyncGroup.newTCPClientConnection());
SncpClientCodec codec = new SncpClientCodec(conn);
List respResults = new ArrayList();
try {
Field respResultsField = ClientCodec.class.getDeclaredField("respResults");
respResultsField.setAccessible(true);
respResults = (List) respResultsField.get(codec);
} catch (Exception e) {
e.printStackTrace();
}
//----------------------------------------------
ByteBuffer realBuf;
{
SncpHeader header = new SncpHeader(sncpAddress, Uint128.ZERO, Uint128.ZERO);
SncpClientRequest request = new SncpClientRequest();
ByteArray writeArray = new ByteArray();
request.prepare(header, 1, "", new byte[20]);
System.out.println("request.1 = " + request);
request.writeTo(conn, writeArray);
request.prepare(header, 2, "", new byte[25]);
System.out.println("request.2 = " + request);
request.writeTo(conn, writeArray);
System.out.println(writeArray.getBytes().length);
realBuf = ByteBuffer.wrap(writeArray.getBytes());
}
System.out.println("sncp.realBuf = " + realBuf.remaining());
codec.decodeMessages(realBuf, new ByteArray());
if (!main) {
Assertions.assertEquals(2, respResults.size());
}
System.out.println(respResults);
}
}