public void DoesntRaiseExceptionWhenRemovingTheSameObjectTwice() { var object1 = new object(); var holder = new UriResolvedObjectHolder(); holder.Add(object1, this._uriResolvedMetadata); holder.Remove(object1); holder.Remove(object1); }
public void ReuseIdAfterObjectRemoving() { var object1 = new object(); var object2 = new object(); var objects = Enumerable .Range(ShellUriBuilder.MinResolvedId, UriResolvedObjectHolderTests.ValidIdCount - 2) .Select(_ => new object()) .Concat(Enumerable.Repeat(object1, 1)) .Concat(Enumerable.Repeat(object2, 1)); var holder = new UriResolvedObjectHolder(); foreach (var obj in objects) { holder.Add(obj, this._uriResolvedMetadata); } var id1 = holder.GetMetadata(object1).ResolvedId; var id2 = holder.GetMetadata(object2).ResolvedId; holder.Remove(object1); holder.Remove(object2); var object3 = new object(); holder.Add(object3, this._uriResolvedMetadata); var id3 = holder.GetMetadata(object3).ResolvedId; Assert.IsTrue(id3 == id1 || id3 == id2); var object4 = new object(); holder.Add(object4, this._uriResolvedMetadata); var id4 = holder.GetMetadata(object4).ResolvedId; Assert.AreNotEqual(id3, id4); Assert.IsTrue(id4 == id1 || id4 == id2); }
public void ContainsReturnsFalseForRemovedObjects() { var object1 = new object(); var object2 = new object(); var holder = new UriResolvedObjectHolder(); holder.Add(object1, this._uriResolvedMetadata); holder.Remove(object1); Assert.IsFalse(holder.Contains(object1)); }
public void RemovesObjectFromHolder() { var object1 = new object(); var object2 = new object(); var holder = new UriResolvedObjectHolder(); holder.Add(object1, this._uriResolvedMetadata); holder.Add(object2, this._uriResolvedMetadata); holder.Remove(object1); CollectionAssert.AreEquivalent(new[] { object2 }, holder.ToArray()); }