//[Platform(Exclude = "Linux")] public void RelativePathSubDependencyResolver_Resolves_RelativePaths_As_Expected_When_No_PropertiesResolver() { // arrange string path = EmbeddedResourceUtil.ExportToPath("Castle.Windsor.Extensions.Test.data", "relpath-castle.config", m_tempPath); const string connString = "server=localhost;user=sa"; WindsorContainer container = new WindsorContainer(path); container.Kernel.Resolver.AddSubResolver(new RelativePathSubDependencyResolver(container.Kernel)); // act RelPathTestClass obj = container.Resolve <RelPathTestClass>(); // assert Assert.IsNotNull(obj); Assert.AreEqual(m_getFullPath(@"..\etc\config.ini"), obj.PathParam); Assert.AreEqual(3, obj.PathArrParam.Length); Assert.AreEqual(m_getFullPath(@"..\etc\config1.ini"), obj.PathArrParam[0]); if (!PlatformHelper.IsUnix()) { Assert.AreEqual(@"C:\temp.ini", obj.PathArrParam[1]); } Assert.AreEqual(m_getFullPath(@"..\etc\second.ini"), obj.PathArrParam[2]); Assert.AreEqual(connString, obj.MySqlConnection.ConnectionString); }
public void RelativePathSubDependencyResolver_Resolves_RelativePaths_As_Expected_With_PropertiesResolver() { // arrange string path = EmbeddedResourceUtil.ExportToPath("Castle.Windsor.Extensions.Test.data", "relpath-castle-with-propertiesresolver.config", m_tempPath); const string connString = "server=localhost;user=sa"; PropertiesSubSystem subSystem = new PropertiesSubSystem(path); WindsorContainer container = new WindsorContainer(); container.Kernel.AddSubSystem(PropertiesSubSystem.SubSystemKey, subSystem); container.Kernel.Resolver.AddSubResolver(new RelativePathSubDependencyResolver(container.Kernel)); container.Register(Component .For <SqlConnection>() .DependsOn(Dependency.OnValue("connectionString", subSystem.Resolver.GetValue("dbConnectionString")))); container.Register(Component .For <RelPathTestClass>() .DependsOn( subSystem.Resolver.GetDependency <string>("pathParam"), subSystem.Resolver.GetDependency <string[]>("pathArrParam"), Dependency.OnComponent("mySqlConnection", typeof(SqlConnection)) )); // act RelPathTestClass obj = container.Resolve <RelPathTestClass>(); // assert Assert.IsNotNull(obj); Assert.AreEqual(m_getFullPath(@"..\etc\config.ini"), obj.PathParam); Assert.AreEqual(3, obj.PathArrParam.Length); Assert.AreEqual(m_getFullPath(@"..\etc\config1.ini"), obj.PathArrParam[0]); if (!PlatformHelper.IsUnix()) { Assert.AreEqual(@"C:\temp.ini", obj.PathArrParam[1]); } Assert.AreEqual(m_getFullPath(@"..\etc\second.ini"), obj.PathArrParam[2]); Assert.AreEqual(connString, obj.MySqlConnection.ConnectionString); }