private WCSFBuilder CreateBuilder()
            {
                WCSFBuilder builder = new WCSFBuilder();

                builder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
                return(builder);
            }
            public TestableRootCompositionContainer()
            {
                _builder = new WCSFBuilder();
                //			_builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));

                InitializeRootContainer(_builder);
            }
        private WCSFBuilder CreateBuilder()
        {
            WCSFBuilder result = new WCSFBuilder();

            result.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
            return(result);
        }
        public TestableRootCompositionContainer()
        {
            _builder = new WCSFBuilder();
            _builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));

            InitializeRootContainer(_builder);
        }
Exemple #5
0
        public void StrategiesContainsOBTypeMappingStrategy()
        {
            WCSFBuilder           builder = new WCSFBuilder();
            IBuilderStrategyChain chain   = builder.Strategies.MakeStrategyChain();
            IBuilderStrategy      head    = chain.Head;

            Assert.IsTrue(head is TypeMappingStrategy);
        }
        private WCSFBuilder CreateBuilder()
        {
            WCSFBuilder builder = new WCSFBuilder();
            CreatedBuilder = builder;

            builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
            return builder;
        }
Exemple #7
0
        public void EmptyBuilderWillCreateAnyValueTypeWithDefaultValue()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator     locator = CreateLocator();

            int actual = builder.BuildUp <int>(locator, null, null);

            Assert.AreEqual(default(int), actual);
        }
Exemple #8
0
        public void EmptyBuilderWillCreateSimpleInstances()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator     locator = CreateLocator();

            SimpleObject o = builder.BuildUp <SimpleObject>(locator, null, null);

            Assert.IsNotNull(o);
            Assert.AreEqual(0, o.IntParam);
        }
Exemple #9
0
        public void EmptyBuilderWillCreateComplexInstances()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator     locator = CreateLocator();

            ComplexObject o = builder.BuildUp <ComplexObject>(locator, null, null);

            Assert.IsNotNull(o);
            Assert.IsNotNull(o.SimpleObject);
            Assert.AreEqual(default(int), o.SimpleObject.IntParam);
        }
Exemple #10
0
        public void CanMapTypesWithDefaultObjectBuilder()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator     locator = CreateLocator();

            TypeMappingPolicy policy = new TypeMappingPolicy(typeof(MockObject), null);

            builder.Policies.Set <ITypeMappingPolicy>(policy, typeof(IMockObject), null);

            IMockObject obj = builder.BuildUp <IMockObject>(locator, null, null);

            Assert.IsTrue(obj is MockObject);
        }
Exemple #11
0
 /// <summary>
 /// Creates the <see cref="IBuilder{TStageEnum}"/> to be used to build the requested page handlers.
 /// </summary>
 /// <remarks>Override this method to change the builder to use and/or the used policies.</remarks>
 protected virtual void CreatePageBuilder()
 {
     if (PageBuilder == null)
     {
         lock (_lockObject)
         {
             if (PageBuilder == null)
             {
                 _pageBuilder = new WCSFBuilder();
                 PageBuilder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(false));
             }
         }
     }
 }
        public void CanCreateSingletonObjectWithDefaultObjectBuilder()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator locator = new Locator();
            LifetimeContainer lifetime = new LifetimeContainer();
            locator.Add(typeof (ILifetimeContainer), lifetime);

            builder.Policies.Set<ISingletonPolicy>(new SingletonPolicy(true), typeof (MockObject), "foo");

            MockObject obj1 = builder.BuildUp<MockObject>(locator, "foo", null);
            MockObject obj2 = builder.BuildUp<MockObject>(locator, "foo", null);

            Assert.AreSame(obj1, obj2);
        }
Exemple #13
0
 /// <summary>
 /// Creates the <see cref="IBuilder{TStageEnum}"/> to be used by the application and its modules.
 /// </summary>
 /// <remarks>Override this method to change the builder to use and/or the used policies.</remarks>
 protected virtual void CreateApplicationBuilder()
 {
     if (ApplicationBuilder == null)
     {
         lock (_lockObject)
         {
             if (ApplicationBuilder == null)
             {
                 _applicationBuilder = new WCSFBuilder();
                 ApplicationBuilder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
             }
         }
     }
 }
Exemple #14
0
        public void BuildUpThrowsWhenTryingToInjectNonIStateValueParameters()
        {
            Locator           locator   = new Locator();
            LifetimeContainer container = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();

            builder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
            locator.Add(new DependencyResolutionLocatorKey(typeof(ISessionStateLocatorService), null),
                        new MockSessionStateLocatorService());

            builder.BuildUp(locator, typeof(InvalidClass), Guid.NewGuid().ToString(), null);
        }
Exemple #15
0
        public void TestPareameteDependencyWithNamedGetter()
        {
            Locator           locator   = new Locator();
            LifetimeContainer container = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();

            TestProviderHost.AnotherProvider = new MockProvider();

            TestNamedParameterDependency obj = builder.BuildUp <TestNamedParameterDependency>(locator, "foo", null);

            Assert.IsNotNull(obj.Provider);
            Assert.AreSame(TestProviderHost.AnotherProvider, obj.Provider);
        }
Exemple #16
0
        public void TestSimpleDependency()
        {
            Locator           locator   = new Locator();
            LifetimeContainer container = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();

            TestProviderHost.Provider = new MockProvider();

            TestSimpleDependency obj = builder.BuildUp <TestSimpleDependency>(locator, "foo", null);

            Assert.IsNotNull(obj.Provider);
            Assert.AreSame(TestProviderHost.Provider, obj.Provider);
        }
Exemple #17
0
        public void CanCreateSingletonObjectWithDefaultObjectBuilder()
        {
            WCSFBuilder       builder  = new WCSFBuilder();
            Locator           locator  = new Locator();
            LifetimeContainer lifetime = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), lifetime);

            builder.Policies.Set <ISingletonPolicy>(new SingletonPolicy(true), typeof(MockObject), "foo");

            MockObject obj1 = builder.BuildUp <MockObject>(locator, "foo", null);
            MockObject obj2 = builder.BuildUp <MockObject>(locator, "foo", null);

            Assert.AreSame(obj1, obj2);
        }
Exemple #18
0
        public void SingletonPolicyBasedOnConcreteTypeRatherThanRequestedType()
        {
            WCSFBuilder       builder           = new WCSFBuilder();
            LifetimeContainer lifetimeContainer = new LifetimeContainer();
            Locator           locator           = CreateLocator(lifetimeContainer);

            builder.Policies.Set <ITypeMappingPolicy>(new TypeMappingPolicy(typeof(Foo), null), typeof(IFoo), null);
            builder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
            GC.Collect();
            object obj1 = builder.BuildUp(locator, typeof(IFoo), null, null);
            object obj2 = builder.BuildUp(locator, typeof(IFoo), null, null);

            Assert.AreSame(obj1, obj2);
            GC.KeepAlive(lifetimeContainer);
        }
        public void BuildUpReturnsInstanceOfStateValueWithCorrespondantValueFromSessionWhenInjectingProperties()
        {
            Locator locator = new Locator();
            LifetimeContainer container = new LifetimeContainer();
            locator.Add(typeof (ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();
            builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
            MockSessionStateLocatorService stateLocator = new MockSessionStateLocatorService();
            locator.Add(new DependencyResolutionLocatorKey(typeof (ISessionStateLocatorService), null), stateLocator);

            stateLocator.SessionState["intKey"] = 5;
            SampleClass builtObject =
                builder.BuildUp(locator, typeof (SampleClass), Guid.NewGuid().ToString(), null) as SampleClass;

            Assert.IsNotNull(builtObject.MyIntValue);
            Assert.AreEqual(5, builtObject.MyIntValue.Value);
        }
Exemple #20
0
        public void BuildUpReturnsNewInstanceOfStateValue()
        {
            Locator           locator   = new Locator();
            LifetimeContainer container = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();

            builder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
            MockSessionStateLocatorService stateLocator = new MockSessionStateLocatorService();

            locator.Add(new DependencyResolutionLocatorKey(typeof(ISessionStateLocatorService), null), stateLocator);

            SampleClass builtObject =
                builder.BuildUp(locator, typeof(SampleClass), Guid.NewGuid().ToString(), null) as SampleClass;

            Assert.IsNotNull(builtObject.MyStringValue);
        }
Exemple #21
0
        public void StrategiesContainsCustomBuildPlanStrategy()
        {
            WCSFBuilder           builder = new WCSFBuilder();
            IBuilderStrategyChain chain   = builder.Strategies.MakeStrategyChain();
            bool foundCorrectStrategyType = false;

            IBuilderStrategy current = chain.Head;

            do
            {
                if (current is BuildPlanStrategy)
                {
                    foundCorrectStrategyType = true;
                }
                current = chain.GetNext(current);
            } while ((current != null) && (foundCorrectStrategyType == false));
            Assert.IsTrue(foundCorrectStrategyType);
        }
        public void TestBuildWithSimpleDependency()
        {
            Locator     locator = new Locator();
            WCSFBuilder builder = new WCSFBuilder();

            builder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));

            TestableRootCompositionContainer compositionContainer = new TestableRootCompositionContainer(builder);

            locator.Add(new DependencyResolutionLocatorKey(typeof(CompositionContainer), null), compositionContainer);
            ITestService service = compositionContainer.Services.AddNew <TestService, ITestService>();

            TestSimpleDependency builtObject =
                builder.BuildUp(locator, typeof(TestSimpleDependency), Guid.NewGuid().ToString(), null) as TestSimpleDependency;

            Assert.IsNotNull(builtObject);
            Assert.IsNotNull(builtObject.TestService);
            Assert.AreEqual(service, builtObject.TestService);
        }
Exemple #23
0
        public void BuildUpReturnsInstanceOfStateValueWithCorrespondantValueFromSessionWhenInjectingProperties()
        {
            Locator           locator   = new Locator();
            LifetimeContainer container = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();

            builder.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
            MockSessionStateLocatorService stateLocator = new MockSessionStateLocatorService();

            locator.Add(new DependencyResolutionLocatorKey(typeof(ISessionStateLocatorService), null), stateLocator);

            stateLocator.SessionState["intKey"] = 5;
            SampleClass builtObject =
                builder.BuildUp(locator, typeof(SampleClass), Guid.NewGuid().ToString(), null) as SampleClass;

            Assert.IsNotNull(builtObject.MyIntValue);
            Assert.AreEqual(5, builtObject.MyIntValue.Value);
        }
Exemple #24
0
        public void TestDependantProviderDependency()
        {
            Locator           locator   = new Locator();
            LifetimeContainer container = new LifetimeContainer();

            locator.Add(typeof(ILifetimeContainer), container);
            TestableRootCompositionContainer compositionContainer = new TestableRootCompositionContainer();

            locator.Add(new DependencyResolutionLocatorKey(typeof(CompositionContainer), null), compositionContainer);
            MockDependencyObject mockDependency =
                compositionContainer.Services.AddNew <MockDependencyObject, MockDependencyObject>();
            WCSFBuilder builder = new WCSFBuilder();

            TestDependentProviderHost.Provider = new MockDependentProvider();

            TestDependentParameterDependency obj = builder.BuildUp <TestDependentParameterDependency>(locator, "foo", null);

            Assert.IsNotNull(obj.Provider);
            Assert.AreSame(TestDependentProviderHost.Provider, obj.Provider);
            Assert.IsNotNull(TestDependentProviderHost.Provider.DependencyObject);
            Assert.AreSame(mockDependency, TestDependentProviderHost.Provider.DependencyObject);
        }
        public void CanMapTypesWithDefaultObjectBuilder()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator locator = CreateLocator();

            TypeMappingPolicy policy = new TypeMappingPolicy(typeof (MockObject), null);
            builder.Policies.Set<ITypeMappingPolicy>(policy, typeof (IMockObject), null);

            IMockObject obj = builder.BuildUp<IMockObject>(locator, null, null);

            Assert.IsTrue(obj is MockObject);
        }
        public void EmptyBuilderWillCreateSimpleInstances()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator locator = CreateLocator();

            SimpleObject o = builder.BuildUp<SimpleObject>(locator, null, null);

            Assert.IsNotNull(o);
            Assert.AreEqual(0, o.IntParam);
        }
 public TestableRootCompositionContainer(IBuilder <WCSFBuilderStage> builder)
 {
     _builder = (WCSFBuilder)builder;
     InitializeRootContainer(_builder);
 }
 public TestableRootCompositionContainer(IBuilder<WCSFBuilderStage> builder)
 {
     _builder = (WCSFBuilder) builder;
     InitializeRootContainer(_builder);
 }
 private WCSFBuilder CreateBuilder()
 {
     WCSFBuilder result = new WCSFBuilder();
     result.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
     return result;
 }
        public void EmptyBuilderWillCreateAnyValueTypeWithDefaultValue()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator locator = CreateLocator();

            int actual = builder.BuildUp<int>(locator, null, null);
            Assert.AreEqual(default(int), actual);
        }
        public TestableRootCompositionContainer()
        {
            _builder = new WCSFBuilder();

            InitializeRootContainer(_builder);
        }
        public void SingletonPolicyBasedOnConcreteTypeRatherThanRequestedType()
        {
            WCSFBuilder builder = new WCSFBuilder();
            LifetimeContainer lifetimeContainer = new LifetimeContainer();
            Locator locator = CreateLocator(lifetimeContainer);
            builder.Policies.Set<ITypeMappingPolicy>(new TypeMappingPolicy(typeof (Foo), null), typeof (IFoo), null);
            builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
            GC.Collect();
            object obj1 = builder.BuildUp(locator, typeof (IFoo), null, null);
            object obj2 = builder.BuildUp(locator, typeof (IFoo), null, null);

            Assert.AreSame(obj1, obj2);
            GC.KeepAlive(lifetimeContainer);
        }
 public void StrategiesContainsOBTypeMappingStrategy()
 {
     WCSFBuilder builder = new WCSFBuilder();
     IBuilderStrategyChain chain = builder.Strategies.MakeStrategyChain();
     IBuilderStrategy head = chain.Head;
     Assert.IsTrue(head is TypeMappingStrategy);
 }
        public void StrategiesContainsOBBuilderAwareStrategy()
        {
            WCSFBuilder builder = new WCSFBuilder();
            IBuilderStrategyChain chain = builder.Strategies.MakeStrategyChain();
            bool foundCorrectStrategyType = false;

            IBuilderStrategy current = chain.Head;
            do
            {
                if (current is BuilderAwareStrategy)
                {
                    foundCorrectStrategyType = true;
                }
                current = chain.GetNext(current);
            } while ((current != null) && (foundCorrectStrategyType == false));
            Assert.IsTrue(foundCorrectStrategyType);
        }
        public TestableRootCompositionContainer()
        {
            _builder = new WCSFBuilder();

            InitializeRootContainer(_builder);
        }
        public void BuildUpThrowsWhenTryingToInjectNonIStateValueParameters()
        {
            Locator locator = new Locator();
            LifetimeContainer container = new LifetimeContainer();
            locator.Add(typeof (ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();
            builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
            locator.Add(new DependencyResolutionLocatorKey(typeof (ISessionStateLocatorService), null),
                        new MockSessionStateLocatorService());

            builder.BuildUp(locator, typeof (InvalidClass), Guid.NewGuid().ToString(), null);
        }
        public void EmptyBuilderWillCreateComplexInstances()
        {
            WCSFBuilder builder = new WCSFBuilder();
            Locator locator = CreateLocator();

            ComplexObject o = builder.BuildUp<ComplexObject>(locator, null, null);

            Assert.IsNotNull(o);
            Assert.IsNotNull(o.SimpleObject);
            Assert.AreEqual(default(int), o.SimpleObject.IntParam);
        }
        public void BuildUpReturnsNewInstanceOfStateValue()
        {
            Locator locator = new Locator();
            LifetimeContainer container = new LifetimeContainer();
            locator.Add(typeof (ILifetimeContainer), container);
            WCSFBuilder builder = new WCSFBuilder();
            builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
            MockSessionStateLocatorService stateLocator = new MockSessionStateLocatorService();
            locator.Add(new DependencyResolutionLocatorKey(typeof (ISessionStateLocatorService), null), stateLocator);

            SampleClass builtObject =
                builder.BuildUp(locator, typeof (SampleClass), Guid.NewGuid().ToString(), null) as SampleClass;

            Assert.IsNotNull(builtObject.MyStringValue);
        }