Exemple #1
0
        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));
            }
        }
Exemple #2
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));
            }
        }
Exemple #3
0
		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));
			}
		}
Exemple #4
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));
			}
		}