Exemple #1
0
        public void Test_NetworkEntityGuid_Index_Set_Causes_Dirty_Bit_Set_After_Changing([EntityDataCollectionTestRange] int index, [Values(1, 2, 3, 4, 5, 6, 7)] int value)
        {
            if (index == 7)
            {
                return;
            }

            //arrange
            ChangeTrackingEntityFieldDataCollectionDecorator collection = new ChangeTrackingEntityFieldDataCollectionDecorator(base.CreateEntityDataCollection());

            var guid = NetworkEntityGuidBuilder.New()
                       .WithType(EntityType.Creature)
                       .WithId((int)value)
                       .Build();

            var guid2 = NetworkEntityGuidBuilder.New()
                        .WithType(EntityType.Player)
                        .WithId((int)value)
                        .Build();

            var guid3 = NetworkEntityGuidBuilder.New()
                        .WithType(EntityType.Player)
                        .WithId((int)value + 1)
                        .Build();

            var guid4 = NetworkEntityGuidBuilder.New()
                        .WithType(EntityType.Player)
                        .WithId((int)value)
                        .Build();

            //act
            collection.SetFieldValue(index, guid);
            collection.ClearTrackedChanges();
            collection.SetFieldValue(index, guid2);
            bool isSet = collection.ChangeTrackingArray.Get(index) && collection.ChangeTrackingArray.Get(index + 1);

            collection.ClearTrackedChanges();
            collection.SetFieldValue(index, guid3);
            isSet &= collection.ChangeTrackingArray.Get(index) && collection.ChangeTrackingArray.Get(index + 1);
            collection.ClearTrackedChanges();
            collection.SetFieldValue(index, guid4);
            isSet &= collection.ChangeTrackingArray.Get(index) && collection.ChangeTrackingArray.Get(index + 1);

            //assert
            Assert.True(isSet, $"Set Value: {value} at Index: {index} did not set change tracked bit.");
        }
Exemple #2
0
 public NetworkEntityGuid Create(EntityType entityType)
 {
     return(NetworkEntityGuidBuilder.New().WithType(entityType)
            .WithId(Interlocked.Increment(ref currentId))
            .Build());
 }