コード例 #1
0
        public void NullAndNotNullNotEquals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o, null));
            Assert.AreEqual(false, comparer.Equals(null, o));
        }
コード例 #2
0
        private bool Equals(ProxyTypeDefinition typeDefinition, Type type, Type targetType, ProxyGeneratorOptions options)
        {
            if (typeDefinition.Type != type)
            {
                return(false);
            }

            if (typeDefinition.TargetType != targetType)
            {
                return(false);
            }

            return(comparer.Equals(typeDefinition.Options, options));
        }
コード例 #3
0
        public void InterceptorSelector_Null_And_Not_Null_Not_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.InterceptorSelector = new MYInterceptorSelectorMock();
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o1, o2));

            var o3 = new ProxyGeneratorOptions();
            var o4 = new ProxyGeneratorOptions();

            o4.InterceptorSelector = new MYInterceptorSelectorMock();
            Assert.AreEqual(false, comparer.Equals(o3, o4));
        }
コード例 #4
0
        public void ServiceProvider_Null_And_Not_Null_Not_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.InterceptableMethodBuilder = new InterceptableMethodBuilderMock1();
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o1, o2));

            var o3 = new ProxyGeneratorOptions();
            var o4 = new ProxyGeneratorOptions();

            o4.InterceptableMethodBuilder = new InterceptableMethodBuilderMock1();
            Assert.AreEqual(false, comparer.Equals(o3, o4));
        }
コード例 #5
0
        public void AdditonalCode_Null_And_Not_Null_Not_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.AdditionalCode = new AdditionalCodeMock1();
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o1, o2));

            var o3 = new ProxyGeneratorOptions();
            var o4 = new ProxyGeneratorOptions();

            o4.AdditionalCode = new AdditionalCodeMock1();
            Assert.AreEqual(false, comparer.Equals(o3, o4));
        }
コード例 #6
0
        public void MemberSelector_Null_And_Not_Null_Not_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.ClassProxyMemberSelector = new ClassProxyMemberSelectorMock1();
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o1, o2));

            var o3 = new ProxyGeneratorOptions();
            var o4 = new ProxyGeneratorOptions();

            o4.ClassProxyMemberSelector = new ClassProxyMemberSelectorMock1();
            Assert.AreEqual(false, comparer.Equals(o3, o4));
        }
コード例 #7
0
        public void AdditonalTypeAttributes_Count_NotEquals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.AdditionalTypeAttributes.Add(new CustomAttributeDefinition(typeof(MyAttribute).GetConstructors()[0], new object[0]));
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o1, o2));

            var o3 = new ProxyGeneratorOptions();
            var o4 = new ProxyGeneratorOptions();

            o4.AdditionalTypeAttributes.Add(new CustomAttributeDefinition(typeof(MyAttribute).GetConstructors()[0], new object[0]));
            Assert.AreEqual(false, comparer.Equals(o3, o4));
        }
コード例 #8
0
        public void EmptyOptionsEquals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(true, comparer.Equals(o1, o2));
        }
コード例 #9
0
        public void MixinNumberNotEquals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.AddMixinInstance(new TypeITD());
            var o2 = new ProxyGeneratorOptions();

            Assert.AreEqual(false, comparer.Equals(o1, o2));
        }
コード例 #10
0
        public void SameMxinsTypeNotEquals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.AddMixinInstance(new TypeITD());
            var o2 = new ProxyGeneratorOptions();

            o2.AddMixinInstance(new TypeITD());
            Assert.AreEqual(true, comparer.Equals(o1, o2));
        }
コード例 #11
0
        public void InterceptorSelector_Same_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.InterceptorSelector = new MYInterceptorSelectorMock();
            var o2 = new ProxyGeneratorOptions();

            o2.InterceptorSelector = new MYInterceptorSelectorMock();

            Assert.AreEqual(true, comparer.Equals(o1, o2));
        }
コード例 #12
0
        public void ServiceProvider_Same_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.InterceptableMethodBuilder = new InterceptableMethodBuilderMock1();
            var o2 = new ProxyGeneratorOptions();

            o2.InterceptableMethodBuilder = new InterceptableMethodBuilderMock1();

            Assert.AreEqual(true, comparer.Equals(o1, o2));
        }
コード例 #13
0
        public void Constructor_Not_Same__Not_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.ConstructorSelector = new ConstructorSelectorMock1();
            var o2 = new ProxyGeneratorOptions();

            o2.ConstructorSelector = new ConstructorSelectorMock2();

            Assert.AreEqual(false, comparer.Equals(o1, o2));
        }
コード例 #14
0
        public void AdditonalCode_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.AdditionalCode = new AdditionalCodeMock1();
            var o2 = new ProxyGeneratorOptions();

            o2.AdditionalCode = new AdditionalCodeMock1();

            Assert.AreEqual(true, comparer.Equals(o1, o2));
        }
コード例 #15
0
        public void MemberSelector_Same_Equals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            var o1 = new ProxyGeneratorOptions();

            o1.ClassProxyMemberSelector = new ClassProxyMemberSelectorMock1();
            var o2 = new ProxyGeneratorOptions();

            o2.ClassProxyMemberSelector = new ClassProxyMemberSelectorMock1();

            Assert.AreEqual(true, comparer.Equals(o1, o2));
        }
コード例 #16
0
        public void Return_Same_TypeDefinition_With_Same_Type_And_Same_Target_Type_And_Same_Options()
        {
            var moduleDefinition = new ModuleDefinition();

            var target = typeof(TypeM1);
            var o      = new ProxyGeneratorOptions();

            o.AddMixinInstance(new MyMixin());

            var typeDefinition = moduleDefinition.GetTypeDefinition(typeof(TypeM1), target, o);

            Assert.AreEqual(TypeDefinitionType.ClassProxy, typeDefinition.TypeDefinitionType);
            Assert.AreEqual(typeof(ClassProxyDefinition), typeDefinition.GetType());
            Assert.AreEqual(typeof(TypeM1), typeDefinition.Type);
            Assert.AreEqual(target, typeDefinition.TargetType);

            Assert.AreEqual(1, moduleDefinition.TypeDefinitions.Count);
            Assert.AreEqual(typeDefinition, moduleDefinition.TypeDefinitions[0]);

            // returns same type definition for same type with same target type or null and same options

            var target2 = typeof(TypeM1);
            var o2      = new ProxyGeneratorOptions();

            o2.AddMixinInstance(new MyMixin());

            var typeDefinition2 = moduleDefinition.GetTypeDefinition(typeof(TypeM1), target2, o2);

            Assert.AreEqual(TypeDefinitionType.ClassProxy, typeDefinition2.TypeDefinitionType);
            Assert.AreEqual(typeof(ClassProxyDefinition), typeDefinition2.GetType());
            Assert.AreEqual(typeof(TypeM1), typeDefinition2.Type);
            Assert.AreEqual(target2, typeDefinition2.TargetType);

            var comparer = new ProxyGeneratorOptionsComparer();

            Assert.AreEqual(true, comparer.Equals(o2, typeDefinition2.Options));


            Assert.AreEqual(typeDefinition2, typeDefinition);
            Assert.AreEqual(1, moduleDefinition.TypeDefinitions.Count);
            Assert.AreEqual(typeDefinition, moduleDefinition.TypeDefinitions[0]);
        }
コード例 #17
0
        public void NullEquals()
        {
            var comparer = new ProxyGeneratorOptionsComparer();

            Assert.AreEqual(true, comparer.Equals(null, null));
        }