This commit is contained in:
2024-09-28 20:11:56 +03:00
parent 5136f08dab
commit 672bb1ff6d
95 changed files with 741 additions and 601 deletions
+45
View File
@@ -0,0 +1,45 @@
using NUnit.Mocks;
using Ragon.Client;
using Ragon.Relay;
using Ragon.Server;
using Ragon.Server.Logging;
using Ragon.Server.Plugin;
namespace Ragon.Tests;
public class Tests
{
private RagonClient _client;
private RagonServer _server;
[SetUp]
public void Setup()
{
LoggerManager.SetLoggerFactory(new RelayLoggerFactory());
var fakeNetwork = new FakeNetwork();
var serverConfiguration = new RagonServerConfiguration()
{
LimitConnections = 100,
LimitRooms = 10,
LimitBufferedEvents = 500,
LimitPlayersPerRoom = 10,
LimitUserDataSize = 512,
LimitPropertySize = 512,
Port = 5000,
Protocol = "udp",
ServerKey = "defaultkey",
ServerTickRate = 30,
ServerAddress = "0.0.0.0",
};
_client = new RagonClient(fakeNetwork.ClientNetwork, 30);
_server = new RagonServer(fakeNetwork.ServerNetwork, new BaseServerPlugin(), serverConfiguration);
}
[Test]
public void Test1()
{
}
}
+31
View File
@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0"/>
<PackageReference Include="NUnit" Version="3.14.0"/>
<PackageReference Include="NUnit.Analyzers" Version="3.9.0"/>
<PackageReference Include="NUnit.Mocks" Version="2.6.4" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0"/>
</ItemGroup>
<ItemGroup>
<Using Include="NUnit.Framework"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Ragon.Client\Ragon.Client.csproj" />
<ProjectReference Include="..\Ragon.Relay\Ragon.Relay.csproj" />
<ProjectReference Include="..\Ragon.Server\Ragon.Server.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,45 @@
using Ragon.Client;
using Ragon.Protocol;
namespace Ragon.Tests;
public class FakeClientNetwork: INetworkConnection
{
public void Close()
{
throw new NotImplementedException();
}
public INetworkChannel Reliable { get; }
public INetworkChannel Unreliable { get; }
public Action<byte[]> OnData { get; set; }
public Action OnConnected { get; set; }
public Action<RagonDisconnect> OnDisconnected { get; set; }
public ulong BytesSent { get; }
public ulong BytesReceived { get; }
public int Ping { get; }
public void Prepare()
{
throw new NotImplementedException();
}
public void Connect(string address, ushort port, uint protocol)
{
}
public void Disconnect()
{
}
public void Update()
{
}
public void Dispose()
{
}
}
@@ -0,0 +1,11 @@
using Ragon.Client;
namespace Ragon.Tests;
public class FakeClientNetworkChannel: INetworkChannel
{
public void Send(byte[] data)
{
}
}
+15
View File
@@ -0,0 +1,15 @@
namespace Ragon.Tests;
public class FakeNetwork
{
public FakeClientNetwork ClientNetwork;
public FakeServerNetwork ServerNetwork;
public FakeNetwork()
{
ClientNetwork = new FakeClientNetwork();
ServerNetwork = new FakeServerNetwork();
}
}
@@ -0,0 +1,28 @@
using Ragon.Server.IO;
namespace Ragon.Tests;
public class FakeServerNetwork: INetworkServer
{
public void Close()
{
}
public void Stop()
{
}
public void Update()
{
}
public void Broadcast(byte[] data, NetworkChannel channel)
{
}
public void Listen(INetworkListener listener, NetworkConfiguration configuration)
{
}
}
@@ -0,0 +1,18 @@
using Ragon.Protocol;
using Ragon.Server.IO;
namespace Ragon.Tests;
public class FakeServerNetworkChannel: INetworkChannel
{
public void Send(byte[] data)
{
}
public void Send(RagonBuffer buffer)
{
}
}