public void OnDisconnect_should_add_OnDisconnected_to_WorkerEntity_and_deallocate_world_command_senders() { const string DisconnectReason = "Testing disconnect."; var createEntityRequestsHandle = entityManager.GetComponentData <WorldCommands.CreateEntity.CommandSender>(worker.WorkerEntity).Handle; var deleteEntityRequestsHandle = entityManager.GetComponentData <WorldCommands.DeleteEntity.CommandSender>(worker.WorkerEntity).Handle; var entityQueryRequestsHandle = entityManager.GetComponentData <WorldCommands.EntityQuery.CommandSender>(worker.WorkerEntity).Handle; var reserveEntityIdsRequestsHandle = entityManager.GetComponentData <WorldCommands.ReserveEntityIds.CommandSender>(worker.WorkerEntity) .Handle; using (var wrappedOp = WorkerOpFactory.CreateDisconnectOp(DisconnectReason)) { receiveSystem.OnDisconnect(wrappedOp.Op); } Assert.IsTrue(entityManager.HasComponent <OnDisconnected>(worker.WorkerEntity)); Assert.AreEqual(DisconnectReason, entityManager.GetSharedComponentData <OnDisconnected>(worker.WorkerEntity).ReasonForDisconnect); Assert.Throws <ArgumentException>(() => WorldCommands.CreateEntity.RequestsProvider.Get(createEntityRequestsHandle)); Assert.Throws <ArgumentException>(() => WorldCommands.DeleteEntity.RequestsProvider.Get(deleteEntityRequestsHandle)); Assert.Throws <ArgumentException>(() => WorldCommands.EntityQuery.RequestsProvider.Get(entityQueryRequestsHandle)); Assert.Throws <ArgumentException>(() => WorldCommands.ReserveEntityIds.RequestsProvider.Get(reserveEntityIdsRequestsHandle)); }