public void TestDependencyContainer()
        {
            // register an instance of IDependencyTest for Inversion of Control
            GenericDependencyContainer <IDependencyTest> .Register <DependencyTestDependency>();

            Assert.NotNull(GenericDependencyContainer <IDependencyTest> .Get());
        }
        public void BasicDalDependencyTest()
        {
            GenericDependencyContainer <IRateService> .Register <TestRateService>();

            var dump = GenericDependencyContainer <IRateService> .Get();

            Assert.Equal(1, dump.XpRate);
            Assert.Equal(1, dump.JobXpRate);
            Assert.Equal(1337, dump.HeroXpRate);
            Assert.Equal(2, dump.DropRate);
            Assert.Equal(2, dump.DropRarityRate);
            Assert.False(dump.ReputationOnKill);
        }
        public void AdvancedDalDependencyTest()
        {
            const string ratesPath = "./config/rates.json";

            GenericDependencyContainer <IRateService> .Register <FileTestRateService>();

            IRateService dep = GenericDependencyContainer <IRateService> .Get();

            var conf = ConfigurationHelper.Load <RatesConfiguration>(ratesPath);

            Assert.Equal(conf.XpRate, dep.XpRate);
random:
            conf.XpRate = new Random().Next(100);
            if (conf.XpRate == dep.XpRate)
            {
                goto random;
            }

            Assert.NotEqual(conf.XpRate, dep.XpRate);
            ConfigurationHelper.Save(ratesPath, conf);
            // UPDATE THE CONFIG
            dep.Update();
            Assert.Equal(conf.XpRate, dep.XpRate);
        }