public void Test_Equals_fails_for_same_code_different_class() { var a1 = new ConcreteEnumValue("a"); var a2 = new ConcreteEnumValue2("a"); Assert.AreNotEqual(a1, a2); }
public void Test_CreateProxy() { var raw = new ConcreteEnumValue("a"); var proxy = EntityProxyFactory.CreateProxy(raw); // the proxy and raw instance are not the same Assert.IsFalse(ReferenceEquals(raw, proxy)); }
public void Test_CreateProxy() { var raw = new ConcreteEnumValue("a"); var proxy = EntityProxyFactory.CreateProxy(raw); // the proxy and raw instance are not the same Assert.IsFalse(ReferenceEquals(raw, proxy)); }
public void Test_AreEqual_compare_EnumValue_and_null() { var e1 = new ConcreteEnumValue("1"); Assert.IsFalse(EqualityUtils <ConcreteEnumValue> .AreEqual(e1, null)); Assert.IsFalse(EqualityUtils <ConcreteEnumValue> .AreEqual(null, e1)); Assert.IsFalse(EqualityUtils <EnumValue> .AreEqual(e1, null)); Assert.IsFalse(EqualityUtils <EnumValue> .AreEqual(null, e1)); }
public void Test_GetClass_returns_type_of_raw_instance() { var raw = new ConcreteEnumValue("a"); var proxy = EntityProxyFactory.CreateProxy(raw); // the type of the proxy is not the type of the raw instance Assert.AreNotEqual(typeof(ConcreteEnumValue), proxy.GetType()); // the GetClass method returns the type of the raw instance Assert.AreEqual(typeof(ConcreteEnumValue), proxy.GetClass()); }
public void Test_GetClass_returns_type_of_raw_instance() { var raw = new ConcreteEnumValue("a"); var proxy = EntityProxyFactory.CreateProxy(raw); // the type of the proxy is not the type of the raw instance Assert.AreNotEqual(typeof(ConcreteEnumValue), proxy.GetType()); // the GetClass method returns the type of the raw instance Assert.AreEqual(typeof(ConcreteEnumValue), proxy.GetClass()); }
public void Test_Equals_correctly_compares_proxy_and_raw_instances() { var raw = new ConcreteEnumValue("a"); 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 ConcreteEnumValue("a"); 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_Equals_correctly_compares_proxy_and_raw_instances() { var raw = new ConcreteEnumValue("a"); 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_AreEqual_compare_distinct_EnumValues() { var e1 = new ConcreteEnumValue("1"); var e2 = new ConcreteEnumValue("2"); Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(e2, e2)); Assert.IsFalse(EqualityUtils <ConcreteEnumValue> .AreEqual(e1, e2)); Assert.IsFalse(EqualityUtils <ConcreteEnumValue> .AreEqual(e2, e1)); // also works using EnumValue as generic arg Assert.IsTrue(EqualityUtils <EnumValue> .AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils <EnumValue> .AreEqual(e2, e2)); Assert.IsFalse(EqualityUtils <EnumValue> .AreEqual(e1, e2)); Assert.IsFalse(EqualityUtils <EnumValue> .AreEqual(e2, e1)); }
public void Test_AreEqual_compare_EnumValue_and_proxy() { var e1 = new ConcreteEnumValue("1"); var e2 = EntityProxyFactory.CreateProxy(e1); // all permutations should be equal Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(e2, e2)); Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(e1, e2)); Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(e2, e1)); // also works using Entity as generic arg Assert.IsTrue(EqualityUtils <EnumValue> .AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils <EnumValue> .AreEqual(e2, e2)); Assert.IsTrue(EqualityUtils <EnumValue> .AreEqual(e1, e2)); Assert.IsTrue(EqualityUtils <EnumValue> .AreEqual(e2, e1)); }
public void Test_AreEqual_does_not_initialize_EnumValue_proxy_if_not_needed() { var raw = new ConcreteEnumValue("1"); EntityProxyFactory.EntityProxyInterceptor interceptor; var proxy = EntityProxyFactory.CreateProxy(raw, out interceptor); // check equality between proxies Assert.IsTrue(EqualityUtils <ConcreteEnumValue> .AreEqual(proxy, proxy)); Assert.IsTrue(EqualityUtils <EnumValue> .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 <ConcreteEnumValue> .AreEqual(raw, proxy)); // in this case, interceptor is invoked Assert.IsTrue(interceptor.Intercepted); }
public void Test_AreEqual_compare_EnumValue_and_proxy() { var e1 = new ConcreteEnumValue("1"); var e2 = EntityProxyFactory.CreateProxy(e1); // all permutations should be equal Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(e2, e2)); Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(e1, e2)); Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(e2, e1)); // also works using Entity as generic arg Assert.IsTrue(EqualityUtils<EnumValue>.AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils<EnumValue>.AreEqual(e2, e2)); Assert.IsTrue(EqualityUtils<EnumValue>.AreEqual(e1, e2)); Assert.IsTrue(EqualityUtils<EnumValue>.AreEqual(e2, e1)); }
public void Test_AreEqual_compare_distinct_EnumValues() { var e1 = new ConcreteEnumValue("1"); var e2 = new ConcreteEnumValue("2"); Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(e2, e2)); Assert.IsFalse(EqualityUtils<ConcreteEnumValue>.AreEqual(e1, e2)); Assert.IsFalse(EqualityUtils<ConcreteEnumValue>.AreEqual(e2, e1)); // also works using EnumValue as generic arg Assert.IsTrue(EqualityUtils<EnumValue>.AreEqual(e1, e1)); Assert.IsTrue(EqualityUtils<EnumValue>.AreEqual(e2, e2)); Assert.IsFalse(EqualityUtils<EnumValue>.AreEqual(e1, e2)); Assert.IsFalse(EqualityUtils<EnumValue>.AreEqual(e2, e1)); }
public void Test_GetHashCode_identical_between_proxy_and_raw_instances() { var raw = new ConcreteEnumValue("a"); 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_EnumValue_and_null() { var e1 = new ConcreteEnumValue("1"); Assert.IsFalse(EqualityUtils<ConcreteEnumValue>.AreEqual(e1, null)); Assert.IsFalse(EqualityUtils<ConcreteEnumValue>.AreEqual(null, e1)); Assert.IsFalse(EqualityUtils<EnumValue>.AreEqual(e1, null)); Assert.IsFalse(EqualityUtils<EnumValue>.AreEqual(null, e1)); }
public void Test_AreEqual_does_not_initialize_EnumValue_proxy_if_not_needed() { var raw = new ConcreteEnumValue("1"); EntityProxyFactory.EntityProxyInterceptor interceptor; var proxy = EntityProxyFactory.CreateProxy(raw, out interceptor); // check equality between proxies Assert.IsTrue(EqualityUtils<ConcreteEnumValue>.AreEqual(proxy, proxy)); Assert.IsTrue(EqualityUtils<EnumValue>.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<ConcreteEnumValue>.AreEqual(raw, proxy)); // in this case, interceptor is invoked Assert.IsTrue(interceptor.Intercepted); }
public void Test_Equals_fails_for_same_code_different_class() { var a1 = new ConcreteEnumValue("a"); var a2 = new ConcreteEnumValue2("a"); Assert.AreNotEqual(a1, a2); }