Example #1
0
        public BottleConfigurationDef(string provenance)
        {
            _objectDef = new ObjectDef(typeof(AssertBottleConfiguration));
            _objectDef.DependencyByValue(provenance);

            _rules = _objectDef.EnumerableDependenciesOf <IBottleConfigurationRule>();
        }
Example #2
0
        void IDependencyVisitor.List(ListDependency dependency)
        {
            var elements = dependency.Items.Select(instanceFor).ToArray();
            var instance = new EnumerableInstance(elements);

            Dependencies.Add(dependency.DependencyType, instance);
        }
Example #3
0
        public void add_type()
        {
            var dependency = new ListDependency(typeof(ISomethingDoer[]));

            dependency.AddType(typeof(ASomethingDoer)).Type.ShouldEqual(typeof(ASomethingDoer));

            dependency.Items.Count.ShouldEqual(1);
        }
Example #4
0
        public void accepting_the_visitor()
        {
            var visitor    = MockRepository.GenerateMock <IDependencyVisitor>();
            var dependency = new ListDependency(typeof(IList <ISomethingDoer>));

            dependency.AcceptVisitor(visitor);

            visitor.AssertWasCalled(x => x.List(dependency));
        }
        void IDependencyVisitor.List(ListDependency dependency)
        {
            _components.AddRange(dependency
                                 .Items
                                 .Select(def => new WindsorDependencyVisitor(dependency.ElementType, def, true))
                                 .SelectMany(v => v.Registrations()));

            _registration.DependsOn(Dependency.OnComponentCollection(dependency.DependencyType,
                                                                     dependency.Items.Select(def => def.Name).ToArray()));
        }
Example #6
0
        public void add_value()
        {
            var doer = new ASomethingDoer();

            var dependency = new ListDependency(typeof(ISomethingDoer[]));

            dependency.AddValue(doer);

            dependency.Items.Count.ShouldEqual(1);

            dependency.Items[0].Value.ShouldBeTheSameAs(doer);
        }
Example #7
0
        void IDependencyVisitor.List(ListDependency dependency)
        {
            var items = dependency.Items.ToArray();

            // Register the type-based items.
            foreach (ObjectDef definition in items.Where(def => def.Value == null))
            {
                var registration = new ObjectDefRegistration(_builder, definition, false, true);
                registration.Register(definition.Type);
            }

            SetDependencyList(dependency.DependencyType, dependency.ElementType, items);
        }
Example #8
0
        protected override ObjectDef buildObjectDef()
        {
            var def = new ObjectDef(typeof(OutputBehavior <>), _resourceType);

            Type mediaType      = typeof(IMedia <>).MakeGenericType(_resourceType);
            Type enumerableType = typeof(IEnumerable <>).MakeGenericType(mediaType);
            var  dependency     = new ListDependency(enumerableType);

            dependency.AddRange(Writers.OfType <IContainerModel>().Select(x => x.ToObjectDef()));

            def.Dependency(dependency);

            return(def);
        }
Example #9
0
        protected override ObjectDef buildObjectDef()
        {
            var def = new ObjectDef(typeof(InputBehavior <>), _inputType);

            var readerType     = typeof(IReader <>).MakeGenericType(_inputType);
            var enumerableType = typeof(IEnumerable <>).MakeGenericType(readerType);
            var dependency     = new ListDependency(enumerableType);

            dependency.AddRange(Readers.OfType <IContainerModel>().Select(x => x.ToObjectDef()));

            def.Dependency(dependency);

            return(def);
        }
Example #10
0
        protected override sealed ObjectDef buildObjectDef()
        {
            var objectDef = new ObjectDef(behaviorType().MakeGenericType(InputType));

            var mediaReaderType = getReaderWriterType().MakeGenericType(InputType);


            var readerDependencies = new ListDependency(typeof(IEnumerable <>).MakeGenericType(mediaReaderType));

            readerDependencies.AddRange(createBuilderDependencies());

            objectDef.Dependency(readerDependencies);

            return(objectDef);
        }
Example #11
0
        public void Should_satisfy_dependency()
        {
            var def = new ObjectDef(typeof(NeedListOfDoers));

            var doer1 = new ASomethingDoer();

            var doers = new ListDependency(typeof(IEnumerable <ISomethingDoer>));

            doers.AddValue(doer1);
            doers.AddType(typeof(BSomethingDoer));

            def.Dependency(doers);


            def.Dependencies.ShouldHaveCount(1);
        }
Example #12
0
        public void build_an_object_with_a_list_dependency()
        {
            var def            = new ObjectDef(typeof(ClassWithSomethings));
            var listDependency = new ListDependency(typeof(IList <ISomething>));

            listDependency.AddType(typeof(SomethingA));
            listDependency.AddType(typeof(SomethingB));
            listDependency.AddValue(new SomethingC());

            def.Dependencies.Add(listDependency);

            var instance = new ObjectDefInstance(def);

            var container = new Container();
            var @object   = container.GetInstance <ClassWithSomethings>(instance);

            @object.Somethings[0].ShouldBeOfType <SomethingA>();
            @object.Somethings[1].ShouldBeOfType <SomethingB>();
            @object.Somethings[2].ShouldBeOfType <SomethingC>();
        }
Example #13
0
        public UIControls DrawUIInput(Dependency dependency)
        {
            if (mTool == null)
            {
                return(null);
            }
            UIPainterItem item = new UIPainterItem();

            item.mDependency = dependency;
            switch (dependency.showType)
            {
            case PropShowType.CLASS:
                break;

            case PropShowType.ENUM:
                EnumDependency enumDependency = dependency as EnumDependency;
                item.Controls = mTool.DrawEnumInputArea(dependency.propInfo.Name, dependency.Value, enumDependency.EnumStructList);
                break;

            case PropShowType.LIST:
                ListDependency listDependency = dependency as ListDependency;
                MethodInfo     mi             = typeof(UIDrawTool).GetMethod("DrawListInputArea");
                item.Controls = mi.MakeGenericMethod(listDependency.GenericType).Invoke(mTool, new object[] {
                    dependency.propInfo.Name,
                    dependency.Value,
                    new Func <object>(() => {
                        return(DrawUIInput(listDependency.GenericDependency[0]));
                    })
                }) as UIControls;
                break;

            case PropShowType.PRIMITIVE:
                item.Controls = mTool.DrawPrimativeInputArea(dependency.propInfo.Name, dependency.Value);
                break;
            }
            uiLogicItems.Add(item);
            return(item.Controls);
        }
Example #14
0
 public ConfigureModelValidationFailureExpression(Func <Type, bool> predicate, ListDependency policies)
 {
     _predicate = predicate;
     _policies  = policies;
 }
 public ValidationFailureExpression(ListDependency policies)
 {
     _policies = policies;
 }
Example #16
0
        void IDependencyVisitor.List(ListDependency dependency)
        {
            var elements = dependency.Items.Select(instanceFor).ToArray();

            ChildArray(dependency.DependencyType).Contains(elements);
        }