コード例 #1
0
        public void GetSaoWithSingletonModeAndAop()
        {
            IApplicationContext ctx = new XmlApplicationContext("assembly://Spring.Services.Tests/Spring.Data.Spring.Remoting/saoSingleton-aop.xml");

            ContextRegistry.RegisterContext(ctx);

            //object saoFactory = ctx.GetObject("&remoteCounter");
            //Assert.IsNotNull(saoFactory);

            object obj = ctx.GetObject("remoteCounter");

            Assert.IsNotNull(obj, "Object is null even though a object has been exported.");
            Assert.IsTrue(AopUtils.IsAopProxy(obj));
            Assert.IsTrue((obj is ISimpleCounter), "Object should implement 'ISimpleCounter' interface.");


            MethodCounter aopCounter = ctx.GetObject("countingBeforeAdvice") as MethodCounter;

            Assert.IsNotNull(aopCounter);

            int aopCount = aopCounter.GetCalls("Count");

            Assert.AreEqual(0, aopCount);

            ISimpleCounter sc = (ISimpleCounter)obj;

            Assert.AreEqual(1, sc.Counter, "Remote object hasn't been activated by the server.");
            sc.Count();
            Assert.AreEqual(2, sc.Counter, "Remote object doesn't work in a 'Singleton' mode.");
            Assert.AreEqual(1, aopCounter.GetCalls("Count"));
        }
コード例 #2
0
        public void GatewayWithConnectionFactoryAndDestinationName()
        {
            XmlApplicationContext ctx =
                (XmlApplicationContext)
                NmsTestUtils.GetContext(@"Nms\Config\NmsGatewayWithConnectionFactoryAndDestinationName.xml");
            IPollableChannel         channel = (IPollableChannel)ctx.GetObject("requestChannel");
            NmsMessageDrivenEndpoint gateway = (NmsMessageDrivenEndpoint)ctx.GetObject("nmsGateway");

            Assert.That(gateway.GetType(), Is.EqualTo(typeof(NmsMessageDrivenEndpoint)));
            ctx.Start();

            ThreadPerTaskExecutor executor = new ThreadPerTaskExecutor();

            executor.Execute(delegate
            {
                SimpleMessageListenerContainer listenerContainer =
                    (SimpleMessageListenerContainer)
                    ctx.GetObject("Spring.Messaging.Nms.Listener.SimpleMessageListenerContainer#0");
                ISessionAwareMessageListener messageListener =
                    (ISessionAwareMessageListener)listenerContainer.MessageListener;
                messageListener.OnMessage(new StubTextMessage("message-driven-test"),
                                          new StubSession("message-driven-test"));
            });

            IMessage message = channel.Receive(TimeSpan.FromMilliseconds(3000));

            Assert.That(message, Is.Not.Null);
            Assert.That(message.Payload, Is.EqualTo("message-driven-test"));
            ctx.Stop();
        }
コード例 #3
0
        //[Test]
        public void BasicConfig()
        {
            NamespaceParserRegistry.RegisterParser(typeof(WcfNamespaceParser));
            IApplicationContext ctx = new XmlApplicationContext(
                ReadOnlyXmlTestResource.GetFilePath("ChannelFactoryObjectDefinitionParserTests.BasicConfig.xml", this.GetType()));

            Assert.IsTrue(ctx.ContainsObjectDefinition("channel"));

            RootObjectDefinition rod = ((IObjectDefinitionRegistry)ctx).GetObjectDefinition("channel") as RootObjectDefinition;

            Assert.IsNotNull(rod);

            Assert.IsTrue(rod.HasObjectType);
            Assert.AreEqual(typeof(ChannelFactoryObject <IContract>), rod.ObjectType);
            Assert.AreEqual(1, rod.ConstructorArgumentValues.NamedArgumentValues.Count);
            Assert.AreEqual("ecn", rod.ConstructorArgumentValues.GetNamedArgumentValue("endpointConfigurationName").Value);

            ChannelFactoryObject <IContract> cfo = ctx.GetObject("&channel") as ChannelFactoryObject <IContract>;

            Assert.IsNotNull(cfo);
            Assert.AreEqual(typeof(IContract), cfo.ObjectType);

            IContract contract = ctx.GetObject("channel") as IContract;

            Assert.IsNotNull(contract);
        }
コード例 #4
0
        //[Test]
        public void CustomProperties()
        {
            NamespaceParserRegistry.RegisterParser(typeof(WcfNamespaceParser));
            IApplicationContext ctx = new XmlApplicationContext(
                ReadOnlyXmlTestResource.GetFilePath("ChannelFactoryObjectDefinitionParserTests.CustomProperties.xml", this.GetType()));

            Assert.IsTrue(ctx.ContainsObjectDefinition("channel"));

            RootObjectDefinition rod = ((IObjectDefinitionRegistry)ctx).GetObjectDefinition("channel") as RootObjectDefinition;

            Assert.IsNotNull(rod);

            Assert.IsTrue(rod.HasObjectType);
            Assert.AreEqual(typeof(ChannelFactoryObject <IContract>), rod.ObjectType);
            Assert.AreEqual(1, rod.ConstructorArgumentValues.NamedArgumentValues.Count);
            Assert.AreEqual("ecn", rod.ConstructorArgumentValues.GetNamedArgumentValue("endpointConfigurationName").Value);
            Assert.IsTrue(rod.PropertyValues.Contains("Credentials.Windows.ClientCredential"));
            Assert.AreEqual("Spring\\Bruno:gnirpS", rod.PropertyValues.GetPropertyValue("Credentials.Windows.ClientCredential").Value);

            ChannelFactoryObject <IContract> cfo = ctx.GetObject("&channel") as ChannelFactoryObject <IContract>;

            Assert.IsNotNull(cfo);
            Assert.AreEqual(typeof(IContract), cfo.ObjectType);
            Assert.AreEqual("Spring", cfo.Credentials.Windows.ClientCredential.Domain);
            Assert.AreEqual("Bruno", cfo.Credentials.Windows.ClientCredential.UserName);
            Assert.AreEqual("gnirpS", cfo.Credentials.Windows.ClientCredential.Password);

            IContract contract = ctx.GetObject("channel") as IContract;

            Assert.IsNotNull(contract);
        }
コード例 #5
0
        protected void SetUp()
        {
            XmlConfigurator.Configure(new FileInfo("config/log4net.properties"));
            dLog.Info("Beginning InventoryManagerTestCase Setup");
            rand = new Random();

            try {
                //iManager = new InventoryManager();
                //oManager = new OrderManager();

                //Spring.NET
                XmlApplicationContext ctx = new XmlApplicationContext("config/spring.cfg.xml");
                iManager = (InventoryManager)ctx.GetObject("InventoryManager");
                oManager = (OrderManager)ctx.GetObject("OrderManager");

                i = new Inventory(rand.Next(), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250), rand.Next(10, 250));
                o = new Order(rand.Next(), new List <Burrito>(), new DateTime(), false, false, new Decimal(0));
                b = new Burrito(rand.Next(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), nextBool(), new Decimal(rand.NextDouble()));
            }
            catch (Exception e)
            {
                dLog.Error("Unable to initialize service/domain objects: " + e.Message + "\n" + e.StackTrace);
            }
            dLog.Info("Finishing InventoryManagerTestCase Setup");
        }
コード例 #6
0
        public void TestMultipleSchedulers()
        {
            XmlApplicationContext ctx = new XmlApplicationContext("multipleSchedulers.xml");

            try
            {
                IScheduler scheduler1 = (IScheduler)ctx.GetObject("scheduler1");
                IScheduler scheduler2 = (IScheduler)ctx.GetObject("scheduler2");
                Assert.AreNotSame(scheduler1, scheduler2);
                Assert.AreEqual("quartz1", scheduler1.SchedulerName);
                Assert.AreEqual("quartz2", scheduler2.SchedulerName);

                XmlApplicationContext ctx2 = new XmlApplicationContext("multipleSchedulers.xml");
                try
                {
                    IScheduler scheduler1a = (IScheduler)ctx2.GetObject("scheduler1");
                    IScheduler scheduler2a = (IScheduler)ctx2.GetObject("scheduler2");
                    Assert.AreNotSame(scheduler1a, scheduler2a);
                    Assert.AreNotSame(scheduler1a, scheduler1);
                    Assert.AreNotSame(scheduler2a, scheduler2);
                    Assert.AreEqual("quartz1", scheduler1a.SchedulerName);
                    Assert.AreEqual("quartz2", scheduler2a.SchedulerName);
                }
                finally
                {
                    ctx2.Dispose();
                }
            }
            finally
            {
                ctx.Dispose();
            }
        }
コード例 #7
0
        public void InjectOnField()
        {
            var testObj          = (AutowireTestFieldNormal)_applicationContext.GetObject("AutowireTestField");
            var objectDefinition = _applicationContext.ObjectFactory.GetObjectDefinition("AutowireTestField");

            Assert.That(testObj.ciao, Is.Not.Null);
            Assert.That(objectDefinition.DependsOn.Count, Is.EqualTo(0));
        }
コード例 #8
0
        public void ImplicitlyRegisterSauceBéarnaiseAsSingleton()
        {
            var context = new XmlApplicationContext("ImplicitlyRegisterSauceBéarnaiseAsSingleton.xml");
            var sauce1  = (SauceBéarnaise)context.GetObject("Sauce");
            var sauce2  = (SauceBéarnaise)context.GetObject("Sauce");

            Assert.Same(sauce1, sauce2);
        }
コード例 #9
0
        public void RegisterSauceBéarnaiseAsTransient()
        {
            var context = new XmlApplicationContext("RegisterSauceBéarnaiseAsTransient.xml");
            var sauce1  = (SauceBéarnaise)context.GetObject("Sauce");
            var sauce2  = (SauceBéarnaise)context.GetObject("Sauce");

            Assert.NotSame(sauce1, sauce2);
        }
コード例 #10
0
        public void Main()
        {
            var ctx = new XmlApplicationContext("objects.xml");
            var o1  = ctx.GetObject("SingletonObject");
            var o2  = ctx.GetObject("ProtoTypeObject");

            ctx.Dispose();
        }
コード例 #11
0
        public void RegisterNamedIngredients()
        {
            var context = new XmlApplicationContext("RegisterNamedIngredients.xml");
            var meat    = context.GetObject("Meat");
            var sauce   = context.GetObject("Sauce");

            Assert.IsAssignableFrom <Steak>(meat);
            Assert.IsAssignableFrom <SauceBéarnaise>(sauce);
        }
コード例 #12
0
    static void Main(string[] args)
    {
        IApplicationContext ctx = new XmlApplicationContext("objects.xml");
        var worker        = (IDoWorkForSomeTime)ctx.GetObject("plainWorker");
        var advisedWorker = (IDoWorkForSomeTime)ctx.GetObject("advisedWorker");

        worker.Work(4);
        advisedWorker.Work(4);
    }
コード例 #13
0
        public void InjectIntoList()
        {
            var testObj          = (AutowireTestList)_applicationContext.GetObject("AutowireTestList");
            var objectDefinition = _applicationContext.ObjectFactory.GetObjectDefinition("AutowireTestList");

            Assert.That(testObj.foos, Is.Not.Null);
            Assert.That(testObj.foos.Count, Is.EqualTo(2));
            Assert.That(objectDefinition.DependsOn.Count, Is.EqualTo(2));
        }
コード例 #14
0
        public void Main()
        {
            var ctx     = new XmlApplicationContext("q11630224/objects.xml");
            var report1 = (IReport)ctx.GetObject("report1");
            var report2 = (IReport)ctx.GetObject("report1");

            Console.WriteLine(UsageTrackingInterceptor.UsageCount);
            report1.WriteReport();
            report2.WriteReport();
            Console.WriteLine(UsageTrackingInterceptor.UsageCount);
        }
コード例 #15
0
        public void InjectIntoDictionary()
        {
            var testObj = (AutowireTestDictionary)_applicationContext.GetObject("AutowireTestDictionary");
            var objectDefinition = _applicationContext.ObjectFactory.GetObjectDefinition("AutowireTestDictionary");

            Assert.That(testObj.foos, Is.Not.Null);
            Assert.That(testObj.foos.Count, Is.EqualTo(2));
            Assert.That(testObj.foos.ContainsKey("HelloFoo"), Is.True);
            Assert.That(testObj.foos.ContainsKey("CiaoFoo"), Is.True);
            Assert.That(objectDefinition.DependsOn.Count, Is.EqualTo(2));
        }
コード例 #16
0
        public void UsingNullFactoryObjectIsNotAnOption()
        {
            var ctx = new XmlApplicationContext("objects.xml", "objects-ref1-as-nullfactoryobject.xml");

            var o = (MyClass)ctx.GetObject("MyObject");

            Assert.IsNull(o.Prop);

            var o2 = (MyClass)ctx.GetObject("MySecondObject");

            Assert.IsNotNull(o2.Prop);
        }
コード例 #17
0
        public void ComponentsUseSpecifiedName()
        {
            _applicationContext = new XmlApplicationContext(ReadOnlyXmlTestResource.GetFilePath("ConfigFiles.ComponentScan2.xml", GetType()));
            var objectDefinitionNames = _applicationContext.ObjectFactory.GetObjectDefinitionNames();

            Assert.That(objectDefinitionNames.Count, Is.EqualTo(5 + 4));
            Assert.That(_applicationContext.GetObject("Component"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject("Service"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject("Repository"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject("Controller"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject("Configuration"), Is.Not.Null);
        }
コード例 #18
0
        public void FailFieldInjectionTooManyObjects()
        {
            Exception ex = null;

            try
            {
                var testObj = (AutowireTestFieldNormal)_applicationContext.GetObject("AutowireTestFieldNormal");
            }
            catch (Exception e) { ex = e; }

            Assert.That(ex, Is.Not.Null, "Should throw an exception");
            Assert.That(ex.Message, Does.Contain("Injection of autowired dependencies failed"));
        }
コード例 #19
0
        public void UsingNullFactoryObjectIsAnOptionIfWeMassageContextToAllowForNullReferences()
        {
            var ctx = new XmlApplicationContext("objects.xml", "objects-ref1-as-nullobject.xml");

            var o2 = (MyClass)ctx.GetObject("MySecondObject");

            Assert.IsNotNull(o2.Prop);

            var o = (MyClass)ctx.GetObject("MyObject");

            Assert.IsNotNull(o.Prop);
            Assert.IsInstanceOf <IMyOtherInterface>(o.Prop);
            Assert.IsInstanceOf <MyOtherClassNullObject>(o.Prop);
        }
コード例 #20
0
        public void ScanComponentsAndAddToContext()
        {
            var prefix = "ComponentScan.ScanComponentsAndAddToContext.";

            _applicationContext = new XmlApplicationContext(ReadOnlyXmlTestResource.GetFilePath("ConfigFiles.ComponentScan1.xml", GetType()));
            var objectDefinitionNames = _applicationContext.ObjectFactory.GetObjectDefinitionNames();

            Assert.That(objectDefinitionNames.Count, Is.EqualTo(5 + 4));
            Assert.That(_applicationContext.GetObject(prefix + "ComponentImpl"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject(prefix + "ServiceImpl"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject(prefix + "RepositoryImpl"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject(prefix + "ControllerImpl"), Is.Not.Null);
            Assert.That(_applicationContext.GetObject(prefix + "ConfigurationImpl"), Is.Not.Null);
        }
コード例 #21
0
        public void Main()
        {
            var ctx   = new XmlApplicationContext("objects.xml");
            var drive = ctx.GetObject("driver");

            Console.WriteLine(drive);

            var genImp = ctx.GetObject("GenericImplementation");

            Console.WriteLine(genImp);

            var genUsr = ctx.GetObject("GenUser");

            Console.WriteLine(genUsr);
        }
コード例 #22
0
        public void Main()
        {
            var ctx = new XmlApplicationContext("objects.xml");

            var o = (MyClass)ctx.GetObject("MyObject");

            Assert.AreEqual(typeof(MySecondClass), o.TheType);

            var o2 = (MyClass)ctx.GetObject("MyObject2");

            Assert.AreEqual(typeof(MySecondClass), o2.TheType);

            var o3 = (MyClass)ctx.GetObject("MyObject3");

            Assert.AreEqual(typeof(MySecondClass), o3.TheType);
        }
コード例 #23
0
        public void TestInitialize()
        {
            IApplicationContext ctx = new XmlApplicationContext(
                "assembly://Topics.Core.Messaging.InProcess.UnitTests/Topics.Core.Messaging.InProcess.UnitTests.Config/Messaging.xml");

            _topicBus = (ITopicBus)ctx.GetObject("DefaultTopicBus");
        }
コード例 #24
0
        public void TestSchedulerRepositoryExposure()
        {
            XmlApplicationContext ctx = new XmlApplicationContext("schedulerRepositoryExposure.xml");

            Assert.AreSame(SchedulerRepository.Instance.Lookup("myScheduler"), ctx.GetObject("scheduler"));
            ctx.Dispose();
        }
コード例 #25
0
        public void RegisterMultipleTypes()
        {
            var context = new XmlApplicationContext("RegisterMultipleTypes.xml");
            var course  = (ICourse)context.GetObject("Course");

            Assert.NotNull(course);
        }
コード例 #26
0
        public void ContainerCanComposeMayonnaiseWhenAutoWiringIsOverriden()
        {
            var context = new XmlApplicationContext("ContainerCanComposeMayonnaiseWhenAutoWiringIsOverriden.xml");
            var mayo    = context.GetObject("Mayonnaise");

            Assert.IsAssignableFrom <Mayonnaise>(mayo);
        }
コード例 #27
0
        public void ContainerResolveMayonnaiseWithAutoWiringIsEnabledByDefault()
        {
            var context = new XmlApplicationContext("ContainerResolveMayonnaiseWithAutoWiringIsEnabledByDefault.xml");
            var mayo    = context.GetObject("Mayonnaise");

            Assert.IsAssignableFrom <Mayonnaise>(mayo);
        }
コード例 #28
0
        public void ContainerResolvesSauceBéarnaise()
        {
            var            context = new XmlApplicationContext("sauce.xml");
            SauceBéarnaise sauce   = (SauceBéarnaise)context.GetObject("Sauce");

            Assert.NotNull(sauce);
        }
コード例 #29
0
        public void ContainerResolvesAutoWiredMayonnaise()
        {
            var context = new XmlApplicationContext("ContainerResolvesAutoWiredMayonnaise.xml");
            var mayo    = context.GetObject("Mayonnaise");

            Assert.IsAssignableFrom <Mayonnaise>(mayo);
        }
コード例 #30
0
        public void Main()
        {
            var ctx = new XmlApplicationContext("objects.xml");
            var o   = ctx.GetObject("MyObject");

            Console.WriteLine(o);
        }