public void CreateFireFor_SendsPacketsToChosenClients() { var mtaServer = new TestingServer(); var players = new TestingPlayer[] { mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), }; var additionalPlayers = new TestingPlayer[] { mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), }; var service = new FireService(mtaServer); service.CreateFireFor(players, Vector3.Zero); foreach (var player in players) { mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player); } foreach (var player in additionalPlayers) { mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player, count: 0); } }
public void HandlePacketRelaysPureSyncPacket() { var server = new TestingServer(); var sourcePlayer = server.AddFakePlayer(); var otherPlayers = new TestingPlayer[] { server.AddFakePlayer(), server.AddFakePlayer(), server.AddFakePlayer() }; Mock <ILogger> loggerMock = new(); Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new(); middlewareMock.Setup(x => x.GetPlayersToSyncTo(sourcePlayer, It.IsAny <PlayerPureSyncPacket>())).Returns(otherPlayers); Mock <IElementCollection> elementCollectionMock = new(); var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementCollectionMock.Object); handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket() { }); foreach (var player in otherPlayers) { server.VerifyPacketSent(PacketId.PACKET_ID_PLAYER_PURESYNC, player); } }
public static Binding WithSolidHttpTransport(this Binding binding, TestingServer server, XmlWriterSettings writerSettings = null) { var settings = writerSettings?.Clone() ?? new XmlWriterSettings(); settings.CloseOutput = false; var custom = binding as CustomBinding; if (custom == null) { custom = new CustomBinding(binding); } var http = custom .Elements .OfType <HttpTransportBindingElement>() .Where(e => e.Scheme == "http" || e.Scheme == "https") .FirstOrDefault() ; if (http != null) { var solid = new SolidHttpTransportBindingElement(server, settings); custom.Elements.Remove(http); custom.Elements.Add(solid); } return(custom); }
public BaseTest() { _transferService = new Mock <ITransferService>(); _serverInfo = new TestingServerInfo { Ip = "1.1.1.1", Port = 443, Status = ServerStatus.Busy }; _server = new TestingServer(_serverInfo, _transferService.Object); _task = new TaskDefinition { Id = Guid.NewGuid(), Points = 100 }; _upload = new Upload { Id = Guid.NewGuid(), TaskId = _task.Id, Task = _task, UserId = Guid.NewGuid().ToString() }; _uploadData = new UploadData(_upload.Id, nameof(_uploadData)); }
public void HandlePacketRelaysPureSyncPacket() { var server = new TestingServer(); var sourcePlayer = server.AddFakePlayer(); var otherPlayers = new TestingPlayer[] { server.AddFakePlayer(), server.AddFakePlayer(), server.AddFakePlayer() }; Mock <ILogger> loggerMock = new(); Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new(); middlewareMock.Setup(x => x.GetPlayersToSyncTo(sourcePlayer, It.IsAny <PlayerPureSyncPacket>())).Returns(otherPlayers); Mock <IElementRepository> elementRepositoryMock = new(); var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementRepositoryMock.Object); handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket() { }); foreach (var player in otherPlayers) { server.NetWrapperMock.Verify(x => x.SendPacket( player.Address, PacketId.PACKET_ID_PLAYER_PURESYNC, It.IsAny <ushort>(), It.IsAny <byte[]>(), It.IsAny <PacketPriority>(), It.IsAny <PacketReliability>())); } }
public void CreateExplosionFor_SendsPacketsToChosenClients() { var mtaServer = new TestingServer(); var players = new TestingPlayer[] { mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), }; var additionalPlayers = new TestingPlayer[] { mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), }; var service = new ExplosionService(mtaServer); service.CreateExplosionFor(players, Vector3.Zero, Enums.ExplosionType.WeakRocket); foreach (var player in players) { mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player); } foreach (var player in additionalPlayers) { mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player, count: 0); } }
public void HandlePacketAppliesSyncData() { var server = new TestingServer(); var sourcePlayer = server.AddFakePlayer(); Mock <ILogger> loggerMock = new(); Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new(); Mock <IElementRepository> elementRepositoryMock = new(); var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementRepositoryMock.Object); handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket() { Position = new Vector3(10, 10, 10), Rotation = 0.25f * MathF.PI, Health = 50, Armor = 75, WeaponSlot = 1 }); sourcePlayer.Position.Should().Be(new Vector3(10, 10, 10)); sourcePlayer.PedRotation.Should().Be(45); sourcePlayer.Rotation.Should().Be(new Vector3(0, 0, 45)); sourcePlayer.Health.Should().Be(50); sourcePlayer.Armor.Should().Be(75); sourcePlayer.CurrentWeaponSlot = WeaponSlot.Melee; }
public void BroadcastPacket_SendsPacketToAllPlayers() { var server = new TestingServer(); var player = server.AddFakePlayer(); var player2 = server.AddFakePlayer(); server.BroadcastPacket(new SetElementModelRpcPacket(player.Id, 0)); server.NetWrapperMock.Verify(x => x.SendPacket( player.Address, PacketId.PACKET_ID_LUA_ELEMENT_RPC, It.IsAny <ushort>(), It.IsAny <byte[]>(), It.IsAny <PacketPriority>(), It.IsAny <PacketReliability>() ), Times.Once); server.NetWrapperMock.Verify(x => x.SendPacket( player2.Address, PacketId.PACKET_ID_LUA_ELEMENT_RPC, It.IsAny <ushort>(), It.IsAny <byte[]>(), It.IsAny <PacketPriority>(), It.IsAny <PacketReliability>() ), Times.Once); }
public UploadProcessor(Upload upload, UploadData uploadData, TestingServer server, RelationalDbContext context) { _upload = upload; _uploadData = uploadData; _server = server; _context = context; }
public void ClientInScope_SendsPacket() { var server = new TestingServer(); var player = server.AddFakePlayer(); using var scope = new ClientPacketScope(new IClient[] { player.Client }); player.Client.SendPacket(new SetElementModelRpcPacket(player.Id, 0)); server.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_LUA_ELEMENT_RPC, player); }
public void ClientOutOfScope_DoesNotSendPacket() { var server = new TestingServer(); var player = server.AddFakePlayer(); using var scope = new ClientPacketScope(Array.Empty <IClient>()); player.Client.SendPacket(new SetElementModelRpcPacket(player.Id, 0)); server.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_LUA_ELEMENT_RPC, player, count: 0); }
public virtual void TestMultipleKMSInstancesWithZKSigner() { FilePath testDir = TestKMS.GetTestDir(); Configuration conf = CreateBaseKMSConf(testDir); TestingServer zkServer = new TestingServer(); zkServer.Start(); MiniKMS kms1 = null; MiniKMS kms2 = null; conf.Set(KMSAuthenticationFilter.ConfigPrefix + AuthenticationFilter.SignerSecretProvider , "zookeeper"); conf.Set(KMSAuthenticationFilter.ConfigPrefix + ZKSignerSecretProvider.ZookeeperConnectionString , zkServer.GetConnectString()); conf.Set(KMSAuthenticationFilter.ConfigPrefix + ZKSignerSecretProvider.ZookeeperPath , "/secret"); TestKMS.WriteConf(testDir, conf); try { kms1 = new MiniKMS.Builder().SetKmsConfDir(testDir).SetLog4jConfFile("log4j.properties" ).Build(); kms1.Start(); kms2 = new MiniKMS.Builder().SetKmsConfDir(testDir).SetLog4jConfFile("log4j.properties" ).Build(); kms2.Start(); Uri url1 = new Uri(kms1.GetKMSUrl().ToExternalForm() + KMSRESTConstants.ServiceVersion + "/" + KMSRESTConstants.KeysNamesResource); Uri url2 = new Uri(kms2.GetKMSUrl().ToExternalForm() + KMSRESTConstants.ServiceVersion + "/" + KMSRESTConstants.KeysNamesResource); DelegationTokenAuthenticatedURL.Token token = new DelegationTokenAuthenticatedURL.Token (); DelegationTokenAuthenticatedURL aUrl = new DelegationTokenAuthenticatedURL(); UserGroupInformation ugiFoo = UserGroupInformation.CreateUserForTesting("foo", new string[] { "gfoo" }); UserGroupInformation ugiBar = UserGroupInformation.CreateUserForTesting("bar", new string[] { "gBar" }); ugiFoo.DoAs(new _PrivilegedExceptionAction_135(aUrl, url1, token)); ugiBar.DoAs(new _PrivilegedExceptionAction_145(aUrl, url2, token)); ugiBar.DoAs(new _PrivilegedExceptionAction_155(aUrl, url2)); } finally { if (kms2 != null) { kms2.Stop(); } if (kms1 != null) { kms1.Stop(); } zkServer.Stop(); } }
public void BroadcastPacket_SendsPacketToAllPlayers() { var server = new TestingServer(); var player = server.AddFakePlayer(); var player2 = server.AddFakePlayer(); server.BroadcastPacket(new SetElementModelRpcPacket(player.Id, 0)); server.VerifyPacketSent(PacketId.PACKET_ID_LUA_ELEMENT_RPC, player); server.VerifyPacketSent(PacketId.PACKET_ID_LUA_ELEMENT_RPC, player2); }
public void CreateExplosion_SendsExpectedPacket() { var mtaServer = new TestingServer(); var player = mtaServer.AddFakePlayer(); var service = new ExplosionService(mtaServer); service.CreateExplosion(Vector3.Zero, Enums.ExplosionType.WeakRocket); var expectedPacket = new ExplosionPacket(null, null, Vector3.Zero, (byte)Enums.ExplosionType.WeakRocket, 0); mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player, expectedPacket.Write()); }
public void CreateFire_SendsExpectedPacket() { var mtaServer = new TestingServer(); var player = mtaServer.AddFakePlayer(); var service = new FireService(mtaServer); service.CreateFire(Vector3.Zero, 2); var expectedPacket = new FirePacket(Vector3.Zero, 2); mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player, expectedPacket.Write()); }
public void ClientInScope_SendsPacket() { var server = new TestingServer(); var player = server.AddFakePlayer(); using var scope = new ClientPacketScope(new Client[] { player.Client }); player.Client.SendPacket(new SetElementModelRpcPacket(player.Id, 0)); server.NetWrapperMock.Verify(x => x.SendPacket( player.Address, It.IsAny <ushort>(), It.IsAny <SetElementModelRpcPacket>() ), Times.Once); }
public void ClientOutOfScope_DoesNotSendPacket() { var server = new TestingServer(); var player = server.AddFakePlayer(); using var scope = new ClientPacketScope(Array.Empty <Client>()); player.Client.SendPacket(new SetElementModelRpcPacket(player.Id, 0)); server.NetWrapperMock.Verify(x => x.SendPacket( player.Address, It.IsAny <ushort>(), It.IsAny <SetElementModelRpcPacket>() ), Times.Never); }
public virtual void Setup() { while (this.server == null) { try { this.server = new TestingServer(); } catch (BindException) { System.Console.Error.WriteLine("Getting bind exception - retrying to allocate server" ); this.server = null; } } }
public void CreateFire_BroadcastsFirePacket() { var mtaServer = new TestingServer(); var players = new TestingPlayer[] { mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), }; var service = new FireService(mtaServer); service.CreateFire(Vector3.Zero); foreach (var player in players) { mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_FIRE, player); } }
public void CreateExplosion_BroadcastsExplosionPacket() { var mtaServer = new TestingServer(); var players = new TestingPlayer[] { mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), mtaServer.AddFakePlayer(), }; var service = new ExplosionService(mtaServer); service.CreateExplosion(Vector3.Zero, Enums.ExplosionType.WeakRocket); foreach (var player in players) { mtaServer.VerifyPacketSent(Packets.Enums.PacketId.PACKET_ID_EXPLOSION, player); } }
public void ColShapeEnterNotCalledWhenOutOfColShape() { var server = new TestingServer(); var behaviour = server.Instantiate <CollisionShapeBehaviour>(); var collisionShape = new CollisionSphere(new Vector3(100, 100, 100), 10).AssociateWith(server);; var dummy = new DummyElement().AssociateWith(server); var isEventCalled = false; collisionShape.ElementEntered += (element) => { if (element == dummy) { isEventCalled = true; } }; dummy.Position = new Vector3(0, 100, 100); isEventCalled.Should().BeFalse(); }
public void HandlePacketSendReturnSyncPacket() { var server = new TestingServer(); var sourcePlayer = server.AddFakePlayer(); var otherPlayers = new TestingPlayer[] { server.AddFakePlayer(), server.AddFakePlayer(), server.AddFakePlayer() }; Mock <ILogger> loggerMock = new(); Mock <ISyncHandlerMiddleware <PlayerPureSyncPacket> > middlewareMock = new(); middlewareMock.Setup(x => x.GetPlayersToSyncTo(sourcePlayer, It.IsAny <PlayerPureSyncPacket>())).Returns(otherPlayers); Mock <IElementRepository> elementRepositoryMock = new(); var handler = new PlayerPureSyncPacketHandler(loggerMock.Object, middlewareMock.Object, elementRepositoryMock.Object); handler.HandlePacket(sourcePlayer.Client, new PlayerPureSyncPacket() { }); server.NetWrapperMock.Verify(x => x.SendPacket(sourcePlayer.Address, It.IsAny <ushort>(), It.IsAny <ReturnSyncPacket>())); }
public async Task AsyncScopes_DoNotInterfere() { var server = new TestingServer(); var player = server.AddFakePlayer(); await Task.WhenAll(new Task[] { Task.Run(async() => { await Task.Delay(10); using var scope = new ClientPacketScope(new Client[] { player.Client }); player.Client.SendPacket(new SetElementModelRpcPacket(player.Id, 1)); await Task.Delay(25); }), Task.Run(async() => { using var scope = new ClientPacketScope(Array.Empty <Client>()); await Task.Delay(25); player.Client.SendPacket(new SetElementModelRpcPacket(player.Id, 2)); }) });
public async Task TryStartNewWorker() { using var scope = _scopeFactory.CreateScope(); var context = scope.ServiceProvider.GetRequiredService <RelationalDbContext>(); var codeManagmentService = scope.ServiceProvider.GetRequiredService <ICodeManagmentService>(); var serverInfo = context.Servers.FirstOrDefault(s => s.Status == Data.Models.ServerStatus.Free); if (serverInfo == null) { return; } using var transferService = _transferServiceFactory.Create(serverInfo.IPAddress, serverInfo.Port); var server = new TestingServer(serverInfo, transferService); var upload = await FetchNextUpload(context); while (upload != null) { var uploadData = codeManagmentService.Get(upload.Id); serverInfo.Status = ServerStatus.Busy; upload.Status = UploadStatus.EnvironmentSetup; await context.SaveChangesAsync(); var processor = _uploadProcessorFactory.Create(upload, uploadData, server, context); await processor.Process(); upload = await FetchNextUpload(context); } serverInfo.Status = ServerStatus.Free; await context.SaveChangesAsync(); }
public void ColShapeEnterCalledOnceForTwoUpdatesInColshape() { var server = new TestingServer(); var behaviour = server.Instantiate <CollisionShapeBehaviour>(); var collisionShape = new CollisionSphere(new Vector3(100, 100, 100), 10).AssociateWith(server);; var dummy = new DummyElement().AssociateWith(server); int callCount = 0; collisionShape.ElementEntered += (element) => { if (element == dummy) { callCount++; } }; dummy.Position = new Vector3(95, 100, 100); dummy.Position = new Vector3(97.5f, 100, 100); callCount.Should().Be(1); }
public virtual void Teardown() { this.server.Close(); this.server = null; }
public virtual void Setup() { zkServer = new TestingServer(); zkServer.Start(); }
public SolidHttpTransportBindingElement(TestingServer server, XmlWriterSettings settings) { _server = server; _settings = settings; }
public IUploadProcessor Create(Upload upload, UploadData uploadData, TestingServer testingServer, RelationalDbContext context) => new UploadProcessor(upload, uploadData, testingServer, context);