/// <summary>
        ///   Constructor
        /// </summary>
        public RelativePathSubDependencyResolver(IKernel kernel)
        {
            m_converter = (IConversionManager)kernel.GetSubSystem(SubSystemConstants.ConversionManagerKey);
            SettingsSubSystem settingsSubSystem = kernel.GetSettingsSubSystem();

            settingsSubSystem.ResolveRelativePaths = true;
            VALUES = new Dictionary <string, object>();
        }
        public void GetSubSystem_Works_As_Expected()
        {
            // arrange
            IWindsorContainer container = new WindsorContainer();

            container.AddFacility(new RelativePathFacility());

            // act
            SettingsSubSystem subSystem = container.Kernel.GetSubSystem <SettingsSubSystem>(SettingsSubSystem.SubSystemKey);

            // assert
            Assert.IsNotNull(subSystem);
        }
        /// <summary>
        ///   Get the registered settings sub system
        /// </summary>
        /// <param name="kernel">Current <see cref="IKernelInternal" /> instance</param>
        /// <returns>Settings subsystem</returns>
        public static SettingsSubSystem GetSettingsSubSystem(this IKernelInternal kernel)
        {
            ISubSystem subSystem = kernel.GetSubSystem(SettingsSubSystem.SubSystemKey);

            if (subSystem != null)
            {
                return((SettingsSubSystem)subSystem);
            }

            SettingsSubSystem newSubSystem = new SettingsSubSystem();

            kernel.AddSubSystem(SettingsSubSystem.SubSystemKey, newSubSystem);

            return(newSubSystem);
        }