Beispiel #1
0
        public void priority_handling()
        {
            var startToken = token;

            using (var sut = new WindsorContainer())
            {
                var startableFacility = new JarvisStartableFacility(new TestLogger());
                sut.AddFacility(startableFacility);

                sut.Register(Component
                             .For <TestStartableMethod>()
                             .StartUsingMethod(t => t.StartMethod)
                             .StopUsingMethod(t => t.StopMethod));

                sut.Register(Component
                             .For <TestStartable>()
                             .WithStartablePriorityHighest());

                startableFacility.StartAllIStartable();
                Assert.That(token, Is.EqualTo(startToken + 2));//two component started.

                var first = sut.Resolve <TestStartable>();
                Assert.That(first.StartToken, Is.EqualTo(startToken + 1));
                var second = sut.Resolve <TestStartableMethod>();
                Assert.That(second.StartToken, Is.EqualTo(startToken + 2));
            }
            Assert.That(token, Is.EqualTo(startToken));//stop called
        }
Beispiel #2
0
        public void Startable_work_with_concrete_class()
        {
            var startToken = token;

            using (var sut = new WindsorContainer())
            {
                var startableFacility = new JarvisStartableFacility(new TestLogger());
                sut.AddFacility(startableFacility);

                sut.Register(Component.For <TestStartable>());

                startableFacility.StartAllIStartable();
                Assert.That(token, Is.EqualTo(startToken + 1)); //one component started.
            }
            Assert.That(token, Is.EqualTo(startToken));         //stop called
        }