Exemple #1
0
        public void GetSectionUsesMostSpecificValueFirst()
        {
            var environment = new Mock <IEnvironment>();

            var persistor = new Mock <IConfigPersistor>();

            persistor.Setup(p => p.GetSection <TestSection>("someKey", "m1", 1)).Returns(new TestSection("someKey_v1_m1_123"));
            persistor.Setup(p => p.GetSection <TestSection>("someKey", "m2")).Returns(new TestSection("someKey_default_m2_234"));
            persistor.Setup(p => p.GetSection <TestSection>("someKey", 3)).Returns(new TestSection("someKey_v3_allMachines_345"));
            persistor.Setup(p => p.GetSection <TestSection>("someKey")).Returns(new TestSection("someKey_default_456"));

            var assemblyResolver = new Mock <IVBinAssemblyResolver>();

            ObjectFactory.Configure(x =>
            {
                x.For <IEnvironment>().Singleton().Use(() => environment.Object);
                x.For <IConfigPersistor>().Singleton().Use(() => persistor.Object);
                x.For <IVBinAssemblyResolver>().Singleton().Use(() => assemblyResolver.Object);
            });

            var config = new ConfigManagerCore();

            assemblyResolver.SetupGet(a => a.CurrentVersion).Returns(1);
            environment.SetupGet(e => e.MachineName).Returns("m1");
            Assert.AreEqual("someKey_v1_m1_123", config.GetSection <TestSection>("someKey").Name);   //"Expecting machine + version"

            assemblyResolver.SetupGet(a => a.CurrentVersion).Returns(1);
            environment.SetupGet(e => e.MachineName).Returns("m2");
            Assert.AreEqual("someKey_default_m2_234", config.GetSection <TestSection>("someKey").Name);   //"Expecting machine default"

            assemblyResolver.SetupGet(a => a.CurrentVersion).Returns(3);
            environment.SetupGet(e => e.MachineName).Returns("mUnknown");
            Assert.AreEqual("someKey_v3_allMachines_345", config.GetSection <TestSection>("someKey").Name);   //"Expecting default version"

            assemblyResolver.SetupGet(a => a.CurrentVersion).Returns(4);
            environment.SetupGet(e => e.MachineName).Returns("mUnknown");
            Assert.AreEqual("someKey_default_456", config.GetSection <TestSection>("someKey").Name);   //"Expecting default"

            assemblyResolver.SetupGet(a => a.CurrentVersion).Returns(4);
            environment.SetupGet(e => e.MachineName).Returns("mUnknown");
            Assert.IsNull(config.GetSection <TestSection>("Unknown"));    // "Unknown value should return a null"
            Assert.IsNull(config.GetSection <ConfigTests>("Unknown"));    //"Unknown type should return a null"
        }
Exemple #2
0
 static ConfigManager()
 {
     g_settings = new ConfigManagerCore();
 }