public void TestTypeIsExpression()
        {
            using (var context = new TestDataContext())
            {
                var result1 = context.ADbSet.Where(i => (object)i is TestA).Count();
                Assert.AreEqual(1, result1);

                var result2 = context.ADbSet.Where(i => ((object)i.TestBProperty.Id.Value is int?) && (i.TestBProperty.Id >= 3)).Count();
                Assert.AreEqual(1, result2);

                object testC   = new TestC();
                var    result3 = context.ADbSet.Where(i => testC is TestA).Count();
                Assert.AreEqual(0, result3);

                var result4 = context.ADbSet.Where(i => testC is TestC?).Count();
                Assert.AreEqual(1, result4);

                var result5 = context.ADbSet.Where(i => (testC is TestC?) && (i.TestBProperty.Id >= 3)).Count();
                Assert.AreEqual(1, result5);

                var result6 = context.ADbSet.Where(i => i is object).Count();
                Assert.AreEqual(1, result6);

                var result7 = context.ADbSet.Where(i => i is TestA2).Count();
                Assert.AreEqual(0, result7);

                var test2   = new TestA2();
                var result8 = context.ADbSet.Where(i => test2 is TestA).Count();
                Assert.AreEqual(1, result8);
            }
        }
Esempio n. 2
0
        public override void RegisterClasses(object container)
        {
            #region TestA

            _registration.RegisterFactoryMethod <ITestA0, TestA0>(container, c =>
            {
                var testA0 = new TestA0();

                return(testA0);
            });
            _registration.RegisterFactoryMethod <ITestA1, TestA1>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);

                var testA1 = new TestA1(testA0);

                return(testA1);
            });
            _registration.RegisterFactoryMethod <ITestA2, TestA2>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);

                var testA2 = new TestA2(testA0, testA1);

                return(testA2);
            });
            _registration.RegisterFactoryMethod <ITestA3, TestA3>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);

                var testA3 = new TestA3(testA0, testA1, testA2);

                return(testA3);
            });
            _registration.RegisterFactoryMethod <ITestA4, TestA4>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);

                var testA4 = new TestA4(testA0, testA1, testA2, testA3);

                return(testA4);
            });
            _registration.RegisterFactoryMethod <ITestA5, TestA5>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);
                var testA4 = _resolving.Resolve <ITestA4>(c);

                var testA5 = new TestA5(testA0, testA1, testA2, testA3, testA4);

                return(testA5);
            });
            _registration.RegisterFactoryMethod <ITestA6, TestA6>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);
                var testA4 = _resolving.Resolve <ITestA4>(c);
                var testA5 = _resolving.Resolve <ITestA5>(c);

                var testA6 = new TestA6(testA0, testA1, testA2, testA3, testA4, testA5);

                return(testA6);
            });
            _registration.RegisterFactoryMethod <ITestA7, TestA7>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);
                var testA4 = _resolving.Resolve <ITestA4>(c);
                var testA5 = _resolving.Resolve <ITestA5>(c);
                var testA6 = _resolving.Resolve <ITestA6>(c);

                var testA7 = new TestA7(testA0, testA1, testA2, testA3, testA4, testA5, testA6);

                return(testA7);
            });
            _registration.RegisterFactoryMethod <ITestA8, TestA8>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);
                var testA4 = _resolving.Resolve <ITestA4>(c);
                var testA5 = _resolving.Resolve <ITestA5>(c);
                var testA6 = _resolving.Resolve <ITestA6>(c);
                var testA7 = _resolving.Resolve <ITestA7>(c);

                var testA8 = new TestA8(testA0, testA1, testA2, testA3, testA4, testA5, testA6, testA7);

                return(testA8);
            });
            _registration.RegisterFactoryMethod <ITestA9, TestA9>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);
                var testA4 = _resolving.Resolve <ITestA4>(c);
                var testA5 = _resolving.Resolve <ITestA5>(c);
                var testA6 = _resolving.Resolve <ITestA6>(c);
                var testA7 = _resolving.Resolve <ITestA7>(c);
                var testA8 = _resolving.Resolve <ITestA8>(c);

                var testA9 = new TestA9(testA0, testA1, testA2, testA3, testA4, testA5, testA6, testA7, testA8);

                return(testA9);
            });

            #endregion

            _registration.RegisterFactoryMethod <ITestA, TestA>(container, c =>
            {
                var testA0 = _resolving.Resolve <ITestA0>(c);
                var testA1 = _resolving.Resolve <ITestA1>(c);
                var testA2 = _resolving.Resolve <ITestA2>(c);
                var testA3 = _resolving.Resolve <ITestA3>(c);
                var testA4 = _resolving.Resolve <ITestA4>(c);
                var testA5 = _resolving.Resolve <ITestA5>(c);
                var testA6 = _resolving.Resolve <ITestA6>(c);
                var testA7 = _resolving.Resolve <ITestA7>(c);
                var testA8 = _resolving.Resolve <ITestA8>(c);
                var testA9 = _resolving.Resolve <ITestA9>(c);

                var testA = new TestA(testA0, testA1, testA2, testA3, testA4, testA5, testA6, testA7, testA8, testA9);

                return(testA);
            });
        }