protected virtual IReflector Reflector(Metamodel metamodel, ILoggerFactory lf)
        {
            var config = new ObjectReflectorConfiguration(new[] { typeof(TestPoco), typeof(TestDomainObject), typeof(ArrayList) }, new Type[] { });
            var objectFactFactorySet = new ObjectFacetFactorySet(FacetFactories.OfType <IObjectFacetFactoryProcessor>().ToArray());

            ClassStrategy = new ObjectClassStrategy(config);
            var mockLogger1 = new Mock <ILogger <AbstractParallelReflector> >().Object;

            return(new ObjectReflector(objectFactFactorySet, (ObjectClassStrategy)ClassStrategy, metamodel, config, new IFacetDecorator[] { }, lf, mockLogger1));
        }
Esempio n. 2
0
        public override void SetUp()
        {
            base.SetUp();
            var cache = new ImmutableInMemorySpecCache();

            ObjectReflectorConfiguration.NoValidate = true;

            var reflectorConfiguration = new ObjectReflectorConfiguration(new Type[] { }, new Type[] { });

            facetFactory = new RemoveIgnoredMethodsFacetFactory(GetOrder <RemoveIgnoredMethodsFacetFactory>(), LoggerFactory);
            var objectFactFactorySet = new ObjectFacetFactorySet(new IObjectFacetFactoryProcessor[] { facetFactory });
            var classStrategy        = new ObjectClassStrategy(reflectorConfiguration);
            var metamodel            = new Metamodel(cache, null);
            var mockLogger           = new Mock <ILogger <AbstractParallelReflector> >().Object;
            var mockLoggerFactory    = new Mock <ILoggerFactory>().Object;

            Reflector = new ObjectReflector(objectFactFactorySet, classStrategy, metamodel, reflectorConfiguration, new IFacetDecorator[] { }, mockLoggerFactory, mockLogger);
        }
        public void TestFilterActions()
        {
            ObjectReflectorConfiguration.NoValidate = true;

            var config = new ObjectReflectorConfiguration(new Type[] { }, new Type[] { });

            var classStrategy = new ObjectClassStrategy(config);

            var methods            = typeof(Customer).GetMethods().ToList();
            var filteredActions    = methods.Where(m => facetFactory.Filters(m, classStrategy)).ToArray();
            var notFilteredActions = methods.Where(m => !facetFactory.Filters(m, classStrategy)).ToArray();

            var filteredNames = new List <string> {
                "ToString",
                "Equals",
                "GetHashCode",
                "GetType"
            };

            var notFilteredNames = new List <string> {
                "ActionWithNoParameters",
                "ActionWithOneGoodParameter",
                "ActionWithTwoGoodParameter",
                "ActionWithOneBadParameter",
                "ActionWithOneGoodOneBadParameter",
                "ActionWithGenericParameter",
                "ActionWithNullableParameter",
                "ActionWithDictionaryParameter"
            };

            Assert.AreEqual(notFilteredNames.Count, notFilteredActions.Length);
            notFilteredNames.ForEach(n => Assert.IsTrue(notFilteredActions.Select(a => a.Name).Contains(n)));

            Assert.AreEqual(filteredNames.Count, filteredActions.Length);
            filteredNames.ForEach(n => Assert.IsTrue(filteredActions.Select(a => a.Name).Contains(n)));
        }