예제 #1
0
        public void ContainerResolvesSauceBéarnaiseThroughType()
        {
            var context = new XmlApplicationContext("sauce.xml");
            SauceBéarnaise sauce = context.GetObjectsOfType(typeof(SauceBéarnaise)).Values.OfType<SauceBéarnaise>().Single();

            Assert.NotNull(sauce);
        }
        //[Test]
        public void WithoutId()
        {
            NamespaceParserRegistry.RegisterParser(typeof(WcfNamespaceParser));
            IApplicationContext ctx = new XmlApplicationContext(
                ReadOnlyXmlTestResource.GetFilePath("ChannelFactoryObjectDefinitionParserTests.WithoutId.xml", this.GetType()));

            IDictionary channels = ctx.GetObjectsOfType(typeof(IContract));
            Assert.AreEqual(1, channels.Count);
        }
예제 #3
0
        public void ResolveUnnamedJunkFood()
        {
            var context = new XmlApplicationContext("ResolveUnnamedJunkFood.xml");
            var meal = context.GetObjectsOfType(typeof(JunkFood)).Values.OfType<JunkFood>().FirstOrDefault();

            Assert.NotNull(meal);
        }
예제 #4
0
        public void CreateMultiCourseMealFromAllCourses()
        {
            var context = new XmlApplicationContext("CreateMultiCourseMealFromAllCourses.xml");
            var meal = context.GetObjectsOfType(typeof(IMeal)).Values.OfType<IMeal>().Single();

            var threeCourseMeal = Assert.IsAssignableFrom<Meal>(meal);
            Assert.IsAssignableFrom<Rillettes>(threeCourseMeal.Courses.First());
            Assert.IsAssignableFrom<CordonBleu>(threeCourseMeal.Courses.ElementAt(1));
            Assert.IsAssignableFrom<MousseAuChocolat>(threeCourseMeal.Courses.ElementAt(2));
        }
예제 #5
0
        public void RegisterUnnamedIngredientsAndResolveByInterface()
        {
            var context = new XmlApplicationContext("RegisterUnnamedIngredientsAndResolveByInterface.xml");
            var ingredients = context.GetObjectsOfType(typeof(IIngredient));

            Assert.True(ingredients.Values.OfType<Steak>().Any());
            Assert.True(ingredients.Values.OfType<SauceBéarnaise>().Any());
        }
예제 #6
0
        public void RegisterUnnamedIngredientsAndResolveByConcreteType()
        {
            var context = new XmlApplicationContext("RegisterUnnamedIngredientsAndResolveByConcreteType.xml");
            var meat = context.GetObjectsOfType(typeof(Steak))
                .Values
                .OfType<Steak>()
                .FirstOrDefault();
            var sauce = context.GetObjectsOfType(typeof(SauceBéarnaise)).Values.OfType<SauceBéarnaise>().FirstOrDefault();

            Assert.NotNull(meat);
            Assert.NotNull(sauce);
        }
예제 #7
0
        public void ShouldLoad()
        {
            IList<IObjectFactoryPostProcessor> all = new List<IObjectFactoryPostProcessor>();

            XmlApplicationContext child1 = new XmlApplicationContext("file://Spring/Layered/child1.xml");
            IDictionary processors = child1.GetObjectsOfType(typeof (IObjectFactoryPostProcessor));
            IEnumerator enumerator = processors.Values.GetEnumerator();

            while(enumerator.MoveNext())
            {
                all.Add((IObjectFactoryPostProcessor)enumerator.Current);
            }

            XmlApplicationContext child2 = new XmlApplicationContext(false, null, true, child1, "file://Spring/Layered/child2.xml");
            foreach (IObjectFactoryPostProcessor entry in all)
            {
                child2.AddObjectFactoryPostProcessor(entry);
            }
            child2.Refresh();
            XmlApplicationContext main = new XmlApplicationContext(false, null, true, child2, "file://Spring/Layered/main.xml");

            foreach (IObjectFactoryPostProcessor entry in all)
            {
                main.AddObjectFactoryPostProcessor(entry);
            }
            main.Refresh();
            Aggregate agg = (Aggregate) main.GetObject("agg");
            Assert.IsNotNull(agg);

            Service3 three = (Service3) main.GetObject("service3");

            Assert.IsNotNull(three);

            PostProcessor processor = (PostProcessor)main.GetObject("PostProcessor");

            Assert.IsNotNull(processor);
            IList<string> names = processor.Names;
            Assert.AreEqual(3, names.Count);
            Assert.IsTrue(names.Contains("foo"));
            Assert.IsTrue(names.Contains("barService"));
            Assert.IsTrue(names.Contains("connection"));
        }