public void TestXmlConfigFileProvider() { var xml = new JsonConfigFileProvider <Student>("k", true, ss => { return(ss.Aggregate(async(l, r) => { var x = await l; var y = await r; x.Age += y.Age; x.Name += y.Name; return x; })); }, "s1", "s2", "s3"); var store = new TestPhysicalFileConfigStore(Directory.GetCurrentDirectory()); store.Data = new Dictionary <string, List <IFileInfo> >() { { "s1", new List <IFileInfo>() { new TestJsonFile <Student>(new Student() { Age = 11, Name = "1" }), new TestJsonFile <Student>(new Student() { Age = 14, Name = "4" }) } }, { "s2", new List <IFileInfo>() { new TestJsonFile <Student>(new Student() { Age = 12, Name = "2" }), new TestJsonFile <Student>(new Student() { Age = 12, Name = "2" }) } }, { "s3", new List <IFileInfo>() { new TestJsonFile <Student>(new Student() { Age = 13, Name = "3" }), new TestJsonFile <Student>(new Student() { Age = 13, Name = "3" }) } } }; xml.SetConfig(store); var s = store.Get <Student>("k"); Assert.NotNull(s); Assert.Equal(36, s.Age); Assert.Equal("123", s.Name); store.DoChange(); s = store.Get <Student>("k"); Assert.NotNull(s); Assert.Equal(39, s.Age); Assert.Equal("423", s.Name); }
public void TestStringConfigFileProvider() { var xml = new StringConfigFileProvider("k", true, ss => { return(ss.Aggregate(async(l, r) => { var x = await l; var y = await r; return x + y; })); }, "s1", "s2", "s3"); var store = new TestPhysicalFileConfigStore(Directory.GetCurrentDirectory()); store.Data = new Dictionary <string, List <IFileInfo> >() { { "s1", new List <IFileInfo>() { new TestJsonFile <Student>(new Student() { Age = 11, Name = "1" }), new TestJsonFile <Student>(new Student() { Age = 14, Name = "4" }) } }, { "s2", new List <IFileInfo>() { new TestJsonFile <Student>(new Student() { Age = 12, Name = "2" }), new TestJsonFile <Student>(new Student() { Age = 12, Name = "2" }) } }, { "s3", new List <IFileInfo>() { new TestJsonFile <Student>(new Student() { Age = 13, Name = "3" }), new TestJsonFile <Student>(new Student() { Age = 13, Name = "3" }) } } }; xml.SetConfig(store); var s = store.Get <string>("k"); Assert.NotNull(s); Assert.Equal("{\"Age\":11,\"Name\":\"1\"}{\"Age\":12,\"Name\":\"2\"}{\"Age\":13,\"Name\":\"3\"}", s); store.DoChange(); s = store.Get <string>("k"); Assert.NotNull(s); Assert.Equal("{\"Age\":14,\"Name\":\"4\"}{\"Age\":12,\"Name\":\"2\"}{\"Age\":13,\"Name\":\"3\"}", s); }