コード例 #1
0
        public void TransferChanged_SaveIt_ButFileNotFound_MustWrited()
        {
            var root = CreateRoot(out var fn);

            File.Delete(Path.Combine(SettingPath, fn));
            var condition   = new JsonChangeTransferCondition();
            var prov        = root.Providers.First();
            var changeInfos = new ConfigurationChangeInfo[]
            {
                new ConfigurationChangeInfo
                {
                    IsCreate = false,
                    Key      = "Title",
                    New      = "world",
                    Old      = "Hello",
                    Provider = prov,
                    Sender   = root
                }
            };
            var rep      = new ChangeReport(root, prov, changeInfos);
            var transfer = condition.GetTransfe(rep);

            Assert.IsNotNull(transfer);
            _ = transfer.Transfe(rep);
        }
コード例 #2
0
        public void TransferChanged_SaveIt_MustWrited()
        {
            var root        = CreateRoot(out var fn);
            var condition   = new JsonChangeTransferCondition();
            var prov        = root.Providers.First();
            var changeInfos = new ConfigurationChangeInfo[]
            {
                new ConfigurationChangeInfo
                {
                    IsCreate = false,
                    Key      = "Title",
                    New      = "world",
                    Old      = "Hello",
                    Provider = prov,
                    Sender   = root
                }
            };
            var rep      = new ChangeReport(root, prov, changeInfos);
            var transfer = condition.GetTransfe(rep);

            Assert.IsNotNull(transfer);
            var t = transfer.Transfe(rep);

            condition.Save(rep, t);

            var destFile = File.ReadAllText(Path.Combine(SettingPath, fn));
            var jobj     = System.Text.Json.Nodes.JsonNode.Parse(destFile);
            var oldTitle = jobj["Title"];

            Assert.AreEqual("world", oldTitle.ToString());
        }
コード例 #3
0
        public void New()
        {
            var config     = new ConfigurationBuilder().Build();
            var changeInfo = new ConfigurationChangeInfo();
            var val        = new ChangeValueInfo(config, changeInfo, ConfigurationTypes.Array, true);

            Assert.AreEqual(config, val.Configuration);
            Assert.AreEqual(changeInfo, val.Info);
            Assert.AreEqual(ConfigurationTypes.Array, val.TypeCode);
            Assert.IsTrue(val.IsArray);
        }
コード例 #4
0
        public void CreateUndo_NewAndOldMustBeRev()
        {
            var info = new ConfigurationChangeInfo
            {
                New = "a",
                Old = "b"
            };
            var ud = ConfigurationChangeInfoExtensions.CreateUndo(info);

            Assert.AreEqual("a", ud.Old);
            Assert.AreEqual("b", ud.New);
        }
コード例 #5
0
        public void Undo_ValueMustSet()
        {
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection();
            var root = builder.BuildSavable();
            var info = new ConfigurationChangeInfo
            {
                Key      = "hello",
                New      = "a",
                Old      = "b",
                Provider = root.Providers.First()
            };

            ConfigurationChangeInfoExtensions.Undo(info);
            var val = root["hello"];

            Assert.AreEqual("b", val);
        }
コード例 #6
0
 private void Agent_Updated(ConfigurationChangeInfo info)
 {
     // A configuration agent has updated!
     _updated.OnNext(info);
 }