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);
        }
Esempio n. 3
0
        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);
        }