Example #1
0
        public void Test_Equals_fails_for_same_code_different_class()
        {
            var a1 = new ConcreteEnumValue("a");
            var a2 = new ConcreteEnumValue2("a");

            Assert.AreNotEqual(a1, a2);
        }
Example #2
0
		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));
		}
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
		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());
		}
Example #6
0
        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());
        }
Example #7
0
		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));
		}
Example #8
0
        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);
        }
Example #9
0
        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));
        }
Example #10
0
        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));
        }
Example #11
0
        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));
        }
Example #12
0
        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));
		}
Example #15
0
		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);
		}
Example #18
0
		public void Test_Equals_fails_for_same_code_different_class()
		{
			var a1 = new ConcreteEnumValue("a");
			var a2 = new ConcreteEnumValue2("a");

			Assert.AreNotEqual(a1, a2);
		}