Example #1
0
        //[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);
        }
Example #2
0
        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);
        }