예제 #1
0
        public void RemoveTest()
        {
            var position = GetRandomVector3();
            var entity   = new Entity(1, position, 0, 10000);

            grid3.Add(entity);
            grid3.Remove(entity);
            using (var enumerator = grid3.Find(position, 0).GetEnumerator())
            {
                Assert.False(enumerator.MoveNext());
            }

            Assert.AreEqual(0, grid3.GetEntityCount());
            grid3.Add(entity);
            Assert.LessOrEqual(grid3.GetEntityCount(), 40804);
        }
        public void UpdatePositionTest()
        {
            var readAsyncCreate = mockNetworkLayer.CreateEventChannel.Reader.ReadAsync();
            var entity          = new Entity(1, Vector3.Zero, 0, 2);

            AltEntitySync.AddEntity(entity);
            var createTask = readAsyncCreate.AsTask();

            createTask.Wait();
            var createResult = createTask.Result;

            Assert.AreSame(createResult.Entity, entity);

            var readAsyncPositionUpdate = mockNetworkLayer.PositionUpdateEventChannel.Reader.ReadAsync();
            var newPosition             = new Vector3(1, 1, 1);

            entity.Position = newPosition;
            var positionUpdateTask = readAsyncPositionUpdate.AsTask();

            positionUpdateTask.Wait();
            var positionUpdateResult = positionUpdateTask.Result;

            Assert.AreSame(positionUpdateResult.Entity, entity);
            Assert.AreEqual(newPosition, positionUpdateResult.Position);

            var readAsyncRemove = mockNetworkLayer.RemoveEventChannel.Reader.ReadAsync();

            AltEntitySync.RemoveEntity(entity);
            var removeTask = readAsyncRemove.AsTask();

            removeTask.Wait();
            var removeResult = removeTask.Result;

            Assert.AreSame(removeResult.Entity, entity);
            Assert.AreEqual(0, grid.GetEntityCount());
        }