public async Task OptionIsDisabled() { // load the file var store = new JsonStore <Person>(_options); var person = await store.ReadAsync(); // change it using another instance var options2 = new JsonStoreOptions(_options) { ThrowOnSavingChangedFile = false }; var store2 = new JsonStore <Person>(options2); person.FullName = Guid.NewGuid().ToString("N"); await store2.SaveAsync(person); // change it again and try to save var newPerson = Constants.GetPerson(); newPerson.FullName = Guid.NewGuid().ToString("N"); await store2.SaveAsync(newPerson); // ensure the file was saved var readContent = await store2.ReadAsync(); Assert.Equal(newPerson, readContent); }
public async Task FileNotLoaded() { // change the content without load the file must be ignored var store = new JsonStore <Person>(_options); var person = Constants.GetPerson(); person.FullName = Guid.NewGuid().ToString("N"); await store.SaveAsync(person); // ensure the file was saved var readContent = await store.ReadAsync(); Assert.Equal(person, readContent); }
public async Task LoadUserConfigAsync(string appDataPath) { var filePath = Path.Combine(appDataPath, UserConfigFilename); using (var js = new JsonStore <T>()) { if (File.Exists(filePath)) { UserConfig = await js.ReadAsync(filePath); } else { UserConfig = new T(); UserConfig.SetDefault(); await js.WriteAsync(filePath, UserConfig); } } }
public async Task FileWasLoaded() { // load the file var store = new JsonStore <Person>(_options); var person = await store.ReadAsync(); // change it using another instance await Task.Run(async() => { var store2 = new JsonStore <Person>(_options); person.FullName = Guid.NewGuid().ToString("N"); await store2.SaveAsync(person); }); // change it again and try to save var newPerson = Constants.GetPerson(); newPerson.FullName = Guid.NewGuid().ToString("N"); await Assert.ThrowsAsync <FileChangedException>(() => store.SaveAsync(newPerson)); }
public async Task ReadFile_null() { var person = await _store.ReadAsync(); Assert.Null(person); }