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."); }
public NetworkEntityGuid Create(EntityType entityType) { return(NetworkEntityGuidBuilder.New().WithType(entityType) .WithId(Interlocked.Increment(ref currentId)) .Build()); }