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)); }
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)); }
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()); }
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)); }
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); }
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)); }
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(); }
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); }
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); }
public void Ctor_ShouldSetId() { var entity = new ConcreteEntity(); entity.Id.ShouldNotBe(Guid.Empty); }
public void AddEntity <T>(ConcreteEntity <T> e) where T : class { entities.Add(e); }
public void MarkForRemoval(ConcreteEntity e) { flaggedForRemovalEntities.Add(e); }
public void CanProveInequalityWithNull() { var testee = new ConcreteEntity(Guid.NewGuid()); testee.Equals(null).Should().BeFalse(); }
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); }
public void Id_property_should_be_set_to_non_default_on_construction() { var concreteEntity = new ConcreteEntity(); concreteEntity.Id.ShouldNotBe(Guid.Empty); }
internal void RemoveEntity <T>(ConcreteEntity <T> e) where T : class { entities.Remove(e); }