public void RemovingItemsShouldChangeTheContentHash(string[] initialContents, int[] itemsToRemove) { PexAssume.IsNotNullOrEmpty(initialContents); PexAssume.IsNotNullOrEmpty(itemsToRemove); PexAssume.AreDistinctValues(initialContents); PexAssume.AreDistinctValues(itemsToRemove); PexAssume.TrueForAll(itemsToRemove, x => x < initialContents.Length && x > 0); (new TestScheduler()).With(sched => { var fixture = new SerializedCollection <ModelTestFixture>(initialContents.Select(x => new ModelTestFixture() { TestString = x })); var hashes = new List <Guid>(); int changeCount = 0; fixture.Changed.Subscribe(_ => { changeCount++; hashes.Add(fixture.ContentHash); }); var toRemove = itemsToRemove.Select(x => fixture[x]); foreach (var v in toRemove) { fixture.Remove(v); } sched.Start(); PexAssert.AreDistinctValues(hashes.ToArray()); PexAssert.AreEqual(itemsToRemove.Length, changeCount); }); }
public void RemovingItemsShouldChangeTheContentHash(string[] initialContents, int[] itemsToRemove) { PexAssume.IsNotNullOrEmpty(initialContents); PexAssume.IsNotNullOrEmpty(itemsToRemove); PexAssume.AreDistinctValues(initialContents); PexAssume.AreDistinctValues(itemsToRemove); PexAssume.TrueForAll(itemsToRemove, x => x < initialContents.Length && x > 0); (new TestScheduler()).With(sched => { var fixture = new SerializedCollection<ModelTestFixture>(initialContents.Select(x => new ModelTestFixture() { TestString = x })); var hashes = new List<Guid>(); int changeCount = 0; fixture.Changed.Subscribe(_ => { changeCount++; hashes.Add(fixture.ContentHash); }); var toRemove = itemsToRemove.Select(x => fixture[x]); foreach(var v in toRemove) { fixture.Remove(v); } sched.Start(); PexAssert.AreDistinctValues(hashes.ToArray()); PexAssert.AreEqual(itemsToRemove.Length, changeCount); }); }