public void Disposing_OwnerTypeListIsRemovedWhenEmpty() { var physics = new MockPhysics(); var material1 = new MockMaterial(); var material2 = new MockMaterial(); ObjectTable.Add(5, material1, physics); ObjectTable.Add(6, material2, physics); // Make sure the objects are present to begin with { var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial)); Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey)); Assert.IsNotNull(ObjectTable.OwnerTypeLookup[materialKey]); } material1.Dispose(); material2.Dispose(); { var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial)); // As we have disposed both materials; the entry in the dictionary for Physics-MockMaterial should // be removed Assert.IsFalse(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey)); } }
public void Disposing_RemovedFromOwnerTypeDictionary() { var physics = new MockPhysics(); var material1 = new MockMaterial(); var material2 = new MockMaterial(); ObjectTable.Add(5, material1, physics); ObjectTable.Add(6, material2, physics); // Make sure the objects are present to begin with { var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial)); Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey)); var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType <MockMaterial>(physics); Assert.IsNotNull(materialsOwnedByPhysics); Assert.AreEqual(2, materialsOwnedByPhysics.Count()); Assert.AreEqual(material1, materialsOwnedByPhysics.ElementAt(0)); Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(1)); } material1.Dispose(); { var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial)); Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey)); var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType <MockMaterial>(physics); Assert.IsNotNull(materialsOwnedByPhysics); Assert.AreEqual(1, materialsOwnedByPhysics.Count()); Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(0)); } }
public void Disposing_RemovedFromOwnerTypeDictionary() { var physics = new MockPhysics(); var material1 = new MockMaterial(); var material2 = new MockMaterial(); ObjectTable.Add(5, material1, physics); ObjectTable.Add(6, material2, physics); // Make sure the objects are present to begin with { var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial)); Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey)); var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType<MockMaterial>(physics); Assert.IsNotNull(materialsOwnedByPhysics); Assert.AreEqual(2, materialsOwnedByPhysics.Count()); Assert.AreEqual(material1, materialsOwnedByPhysics.ElementAt(0)); Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(1)); } material1.Dispose(); { var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial)); Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey)); var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType<MockMaterial>(physics); Assert.IsNotNull(materialsOwnedByPhysics); Assert.AreEqual(1, materialsOwnedByPhysics.Count()); Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(0)); } }