Пример #1
0
		public void Test_CreateProxy()
		{
			var raw = new ConcreteEntity();
			var proxy = EntityProxyFactory.CreateProxy(raw);

			// the proxy and raw instance are not the same
			Assert.IsFalse(ReferenceEquals(raw, proxy));
		}
Пример #2
0
		public void Test_AreEqual_compare_entity_and_null()
		{
			var e1 = new ConcreteEntity();

			Assert.IsFalse(EqualityUtils<ConcreteEntity>.AreEqual(e1, null));
			Assert.IsFalse(EqualityUtils<ConcreteEntity>.AreEqual(null, e1));
			Assert.IsFalse(EqualityUtils<Entity>.AreEqual(e1, null));
			Assert.IsFalse(EqualityUtils<Entity>.AreEqual(null, e1));
		}
Пример #3
0
		public void Test_GetClass_returns_type_of_raw_instance()
		{
			var raw = new ConcreteEntity();
			var proxy = EntityProxyFactory.CreateProxy(raw);

			// the type of the proxy is not the type of the raw instance
			Assert.AreNotEqual(typeof(ConcreteEntity), proxy.GetType());
			
			// the GetClass method returns the type of the raw instance
			Assert.AreEqual(typeof(ConcreteEntity), proxy.GetClass());
		}
Пример #4
0
		public void Test_Equals_correctly_compares_proxy_and_raw_instances()
		{
			var raw = new ConcreteEntity();
			var proxy = EntityProxyFactory.CreateProxy(raw);

			// the proxy and raw instance are not the same
			Assert.IsFalse(ReferenceEquals(raw, proxy));

			// check every possible permutation
			Assert.IsTrue(raw.Equals(raw));
			Assert.IsTrue(proxy.Equals(proxy));
			Assert.IsTrue(raw.Equals(proxy));
			Assert.IsTrue(proxy.Equals(raw));
		}
Пример #5
0
		public void Test_GetHashCode_identical_between_proxy_and_raw_instances()
		{
			var raw = new ConcreteEntity();
			var proxy = EntityProxyFactory.CreateProxy(raw);

			// the proxy and raw instance are not the same
			Assert.IsFalse(ReferenceEquals(raw, proxy));

			var x = raw.GetHashCode();
			var y = proxy.GetHashCode();

			// hash codes are same
			Assert.AreEqual(x, y);
		}
Пример #6
0
		public void Test_AreEqual_compare_distinct_entities()
		{
			var e1 = new ConcreteEntity();
			var e2 = new ConcreteEntity();

			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(e1, e1));
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(e2, e2));
			Assert.IsFalse(EqualityUtils<ConcreteEntity>.AreEqual(e1, e2));
			Assert.IsFalse(EqualityUtils<ConcreteEntity>.AreEqual(e2, e1));

			// also works using Entity as generic arg
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(e1, e1));
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(e2, e2));
			Assert.IsFalse(EqualityUtils<Entity>.AreEqual(e1, e2));
			Assert.IsFalse(EqualityUtils<Entity>.AreEqual(e2, e1));
		}
Пример #7
0
		public void Test_AreEqual_compare_entity_and_proxy()
		{
			var e1 = new ConcreteEntity();
			var e2 = EntityProxyFactory.CreateProxy(e1);

			// all permutations should be equal
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(e1, e1));
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(e2, e2));
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(e1, e2));
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(e2, e1));

			// also works using Entity as generic arg
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(e1, e1));
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(e2, e2));
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(e1, e2));
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(e2, e1));
		}
        public void Two_entities_with_the_same_Id_should_equal_each_other()
        {
            var first = new ConcreteEntity { Id = 99 };
            var second = new ConcreteEntity { Id = 99 };

            first.Equals(second).ShouldBeTrue();
            second.Equals(first).ShouldBeTrue();

            Equals(first, second).ShouldBeTrue();
            Equals(second, first).ShouldBeTrue();

            first.GetHashCode().ShouldEqual(second.GetHashCode());

            (first == second).ShouldBeTrue();
            (second == first).ShouldBeTrue();

            (first != second).ShouldBeFalse();
            (second != first).ShouldBeFalse();
        }
        public void Two_entities_with_different_Ids_should_not_equal_each_other()
        {
            var first = new ConcreteEntity { Id = 66 };
            var second = new ConcreteEntity { Id = 77 };

            first.Equals(second).ShouldBeFalse();
            second.Equals(first).ShouldBeFalse();

            Equals(first, second).ShouldBeFalse();
            Equals(second, first).ShouldBeFalse();

            first.GetHashCode().ShouldNotEqual(second.GetHashCode());

            (first == second).ShouldBeFalse();
            (second == first).ShouldBeFalse();

            (first != second).ShouldBeTrue();
            (second != first).ShouldBeTrue();
        }
Пример #10
0
        public void Test_AreEqual_does_not_initialize_Entity_proxy_if_not_needed()
        {
            var raw = new ConcreteEntity();

            EntityProxyFactory.EntityProxyInterceptor interceptor;
            var proxy = EntityProxyFactory.CreateProxy(raw, out interceptor);

            // check equality between proxies
            Assert.IsTrue(EqualityUtils <ConcreteEntity> .AreEqual(proxy, proxy));
            Assert.IsTrue(EqualityUtils <Entity> .AreEqual(proxy, proxy));

            // ensure interceptor did not intercept anything (ie initialize proxy)
            Assert.IsFalse(interceptor.Intercepted);

            // check equality between proxy and raw
            Assert.IsTrue(EqualityUtils <ConcreteEntity> .AreEqual(raw, proxy));

            // in this case, interceptor is invoked
            Assert.IsTrue(interceptor.Intercepted);
        }
Пример #11
0
        public void Two_entities_with_the_same_Id_should_equal_each_other()
        {
            var first = new ConcreteEntity {
                Id = 99
            };
            var second = new ConcreteEntity {
                Id = 99
            };

            first.Equals(second).ShouldBeTrue();
            second.Equals(first).ShouldBeTrue();


            Equals(first, second).ShouldBeTrue();
            Equals(second, first).ShouldBeTrue();

            first.GetHashCode().ShouldEqual(second.GetHashCode());

            (first == second).ShouldBeTrue();
            (second == first).ShouldBeTrue();

            (first != second).ShouldBeFalse();
            (second != first).ShouldBeFalse();
        }
Пример #12
0
        public void Two_entities_with_different_Ids_should_not_equal_each_other()
        {
            var first = new ConcreteEntity {
                Id = 66
            };
            var second = new ConcreteEntity {
                Id = 77
            };

            first.Equals(second).ShouldBeFalse();
            second.Equals(first).ShouldBeFalse();


            Equals(first, second).ShouldBeFalse();
            Equals(second, first).ShouldBeFalse();

            first.GetHashCode().ShouldNotEqual(second.GetHashCode());

            (first == second).ShouldBeFalse();
            (second == first).ShouldBeFalse();

            (first != second).ShouldBeTrue();
            (second != first).ShouldBeTrue();
        }
Пример #13
0
    EntityComponent <ConcreteEntity> SpawnEntity(ConcreteEntity entity)
    {
        GameObject o = new GameObject();

        o.name = entity.Name;

        EntityComponent <ConcreteEntity> component;

        if (entity is Projectile)
        {
            component = o.AddComponent <ProjectileComponent>();
            entity.register(component);
        }
        else
        {
            component = o.AddComponent <EntityComponent>();
            entity.register(component);
        }
        if (entity.Name == "BuildIndicator")
        {
            buildIndicatorComponent = component;
        }
        return(component);
    }
Пример #14
0
        public void Ctor_ShouldSetId()
        {
            var entity = new ConcreteEntity();

            entity.Id.ShouldNotBe(Guid.Empty);
        }
Пример #15
0
 public void AddEntity <T>(ConcreteEntity <T> e) where T : class
 {
     entities.Add(e);
 }
Пример #16
0
 public void MarkForRemoval(ConcreteEntity e)
 {
     flaggedForRemovalEntities.Add(e);
 }
Пример #17
0
        public void CanProveInequalityWithNull()
        {
            var testee = new ConcreteEntity(Guid.NewGuid());

            testee.Equals(null).Should().BeFalse();
        }
Пример #18
0
		public void Test_AreEqual_does_not_initialize_Entity_proxy_if_not_needed()
		{
			var raw = new ConcreteEntity();
			EntityProxyFactory.EntityProxyInterceptor interceptor;
			var proxy = EntityProxyFactory.CreateProxy(raw, out interceptor);

			// check equality between proxies
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(proxy, proxy));
			Assert.IsTrue(EqualityUtils<Entity>.AreEqual(proxy, proxy));

			// ensure interceptor did not intercept anything (ie initialize proxy)
			Assert.IsFalse(interceptor.Intercepted);

			// check equality between proxy and raw
			Assert.IsTrue(EqualityUtils<ConcreteEntity>.AreEqual(raw, proxy));

			// in this case, interceptor is invoked
			Assert.IsTrue(interceptor.Intercepted);
		}
Пример #19
0
        public void Id_property_should_be_set_to_non_default_on_construction()
        {
            var concreteEntity = new ConcreteEntity();

            concreteEntity.Id.ShouldNotBe(Guid.Empty);
        }
Пример #20
0
 internal void RemoveEntity <T>(ConcreteEntity <T> e) where T : class
 {
     entities.Remove(e);
 }