Fixing previous commit, using correct case for CaptureFor and removing the component...
[castle.git] / InversionOfControl / Castle.Windsor.Tests / Configuration2 / Properties / PropertiesTestCase.cs
blobb345a5ad24a6893de7e2c48147497f732ae55db9
1 // Copyright 2004-2007 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.Windsor.Tests.Configuration2.Properties
17 using System;
18 using System.IO;
19 using Castle.Core.Configuration;
20 using Castle.MicroKernel;
21 using Castle.Windsor.Configuration.Interpreters.XmlProcessor;
22 using NUnit.Framework;
24 [TestFixture]
25 public class PropertiesTestCase
27 private String dir = ConfigHelper.ResolveConfigPath("Configuration2/Properties/");
29 private IWindsorContainer container;
31 [Test]
32 public void CorrectEval()
34 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
35 "config_with_properties.xml");
37 container = new WindsorContainer(file);
39 AssertConfiguration();
42 [Test]
43 public void SilentProperties()
45 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
46 "config_with_silent_properties.xml");
48 container = new WindsorContainer(file);
50 IConfigurationStore store = container.Kernel.ConfigurationStore;
52 Assert.AreEqual(1, store.GetFacilities().Length, "Diff num of facilities");
53 Assert.AreEqual(1, store.GetComponents().Length, "Diff num of components");
55 IConfiguration config = store.GetFacilityConfiguration("facility1");
56 IConfiguration childItem = config.Children["param1"];
57 Assert.IsNotNull(childItem);
58 Assert.AreEqual("prop1 value", childItem.Value);
59 Assert.AreEqual("", childItem.Attributes["attr"]);
61 config = store.GetComponentConfiguration("component1");
62 childItem = config.Children["param1"];
63 Assert.IsNotNull(childItem);
64 Assert.AreEqual(null, childItem.Value);
65 Assert.AreEqual("prop1 value", childItem.Attributes["attr"]);
68 [Test, ExpectedException(typeof(ConfigurationProcessingException))]
69 public void MissingProperties()
71 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
72 "config_with_missing_properties.xml");
74 container = new WindsorContainer(file);
77 [Test]
78 public void PropertiesWithinProperties()
80 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
81 "properties_using_properties.xml");
83 container = new WindsorContainer(file);
85 AssertConfiguration();
88 [Test]
89 public void PropertiesAndIncludes()
91 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
92 "config_with_properties_and_includes.xml");
94 container = new WindsorContainer(file);
96 AssertConfiguration();
99 [Test]
100 public void PropertiesAndDefines()
102 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
103 "config_with_properties_and_defines.xml");
105 container = new WindsorContainer(file);
107 AssertConfiguration();
110 [Test]
111 public void PropertiesAndDefines2()
113 String file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir +
114 "config_with_properties_and_defines2.xml");
116 container = new WindsorContainer(file);
118 AssertConfiguration();
121 private void AssertConfiguration()
123 IConfigurationStore store = container.Kernel.ConfigurationStore;
125 Assert.AreEqual(3, store.GetFacilities().Length, "Diff num of facilities");
126 Assert.AreEqual(2, store.GetComponents().Length, "Diff num of components");
128 IConfiguration config = store.GetFacilityConfiguration("facility1");
129 IConfiguration childItem = config.Children["item"];
130 Assert.IsNotNull(childItem);
131 Assert.AreEqual("prop1 value", childItem.Value);
133 config = store.GetFacilityConfiguration("facility2");
134 Assert.IsNotNull(config);
135 childItem = config.Children["item"];
136 Assert.IsNotNull(childItem);
137 Assert.AreEqual("prop2 value", childItem.Attributes["value"]);
138 Assert.IsNull(childItem.Value);
140 config = store.GetFacilityConfiguration("facility3");
141 Assert.IsNotNull(config);
142 Assert.AreEqual(3, config.Children.Count, "facility3 should have 3 children");
144 childItem = config.Children["param1"];
145 Assert.IsNotNull(childItem);
146 Assert.AreEqual("prop2 value", childItem.Value);
147 Assert.AreEqual("prop1 value", childItem.Attributes["attr"]);
149 childItem = config.Children["param2"];
150 Assert.IsNotNull(childItem);
151 Assert.AreEqual("prop1 value", childItem.Value);
152 Assert.AreEqual("prop2 value", childItem.Attributes["attr"]);
154 childItem = config.Children["param3"];
155 Assert.IsNotNull(childItem);
156 Assert.AreEqual("param3 attr", childItem.Attributes["attr"]);
158 childItem = childItem.Children["value"];
159 Assert.IsNotNull(childItem);
160 Assert.AreEqual("param3 value", childItem.Value);
161 Assert.AreEqual("param3 value attr", childItem.Attributes["attr"]);
163 config = store.GetComponentConfiguration("component1");
164 childItem = config.Children["item"];
165 Assert.IsNotNull(childItem);
166 Assert.AreEqual("prop1 value", childItem.Value);
168 config = store.GetComponentConfiguration("component2");
169 childItem = config.Children["item"];
170 Assert.IsNotNull(childItem);
171 Assert.AreEqual("prop2 value", childItem.Attributes["value"]);