Добавлен предсказуемый генератор данных
This commit is contained in:
@@ -7,17 +7,34 @@ using Domain.Dto;
|
||||
using MessagePack;
|
||||
using NetworkTest;
|
||||
using Server;
|
||||
using Server.DataGenerator;
|
||||
|
||||
if (args.Length < 2)
|
||||
if (args.Length < 3)
|
||||
{
|
||||
System.Console.WriteLine("Pass twp arg: test/http/tcp and json/bin");
|
||||
System.Console.WriteLine("Pass three args: test/http/tcp, json/bin, and random/predictable");
|
||||
return -1;
|
||||
}
|
||||
|
||||
var dataGenerator = new DataGenerator(generationInterval: TimeSpan.FromMilliseconds(1));
|
||||
|
||||
var protocol = args[0];
|
||||
var serialization = args[1];
|
||||
var generatorType = args[2];
|
||||
int delay = 0;
|
||||
|
||||
if (generatorType == "predictable" && args.Length > 3)
|
||||
{
|
||||
if (!int.TryParse(args[3], out delay))
|
||||
{
|
||||
System.Console.WriteLine("Invalid delay value. Must be an integer.");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
IDataGenerator dataGenerator = generatorType switch
|
||||
{
|
||||
"random" => new RandomDataGenerator(generationInterval: TimeSpan.FromMilliseconds(1)),
|
||||
"predictable" => new PredictableDataGenerator(delay),
|
||||
_ => throw new ArgumentException("Generator type must be 'random' or 'predictable'")
|
||||
};
|
||||
|
||||
if (protocol == "test")
|
||||
{
|
||||
@@ -31,7 +48,7 @@ if (protocol == "test")
|
||||
var json = serialization == "json";
|
||||
while (true)
|
||||
{
|
||||
var data = dataGenerator.GetPackage(index);
|
||||
var data = dataGenerator.GetPackage();
|
||||
if (data == null)
|
||||
{
|
||||
nullCount++;
|
||||
@@ -65,9 +82,9 @@ if (protocol == "test")
|
||||
|
||||
IServer? server = protocol switch
|
||||
{
|
||||
"http" => new HttpServer(index => dataGenerator.GetPackage(index),
|
||||
"http" => new HttpServer(() => dataGenerator.GetPackage(),
|
||||
serialization == "json" ? PrepareResponseJson : PrepareResponseMessagePack),
|
||||
"tcp" => new TcpServer(index => dataGenerator.GetPackage(index),
|
||||
"tcp" => new TcpServer(() => dataGenerator.GetPackage(),
|
||||
serialization == "json" ? PrepareBytesJson : PrepareBytesMessagePack),
|
||||
_ => null
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user