public static void TryRestoreWhenHasSoftDeleteAndBackup() { var dummy = new DummySerializable(1); var file = CreateFile(); var backup = CreateBackupFile(); var softDelete = file.SoftDeleteFile(); backup.Save(dummy); dummy.Value++; softDelete.Save(dummy); AssertFile.Exists(false, file); AssertFile.Exists(true, softDelete); AssertFile.Exists(true, backup); var backuper = Backuper.Create(new BackupSettings(Directory.FullName, BackupSettings.DefaultExtension, BackupSettings.DefaultTimeStampFormat, 2, 3)); Assert.IsTrue(backuper.CanRestore(file)); Assert.IsTrue(backuper.TryRestore(file)); Assert.AreEqual(dummy, file.Read <DummySerializable>()); AssertFile.Exists(true, file); AssertFile.Exists(false, softDelete); AssertFile.Exists(true, backup); }
public void SaveTwice(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); var backupFile = testCase.BackupFile <DummySerializable>(repository); AssertFile.Exists(false, file); testCase.Save(repository, file, dummy); AssertFile.Exists(true, file); AssertFile.Exists(false, file.SoftDeleteFile()); AssertFile.Exists(false, file.TempFile(repository.Settings)); if (repository.Settings.BackupSettings != null) { AssertFile.Exists(false, backupFile !); } var read = this.Read <DummySerializable>(file); Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); testCase.Save(repository, file, dummy); AssertFile.Exists(true, file); AssertFile.Exists(false, file.SoftDeleteFile()); AssertFile.Exists(false, file.TempFile(repository.Settings)); if (repository.Settings.BackupSettings != null) { AssertFile.Exists(true, backupFile !); } read = this.Read <DummySerializable>(file); Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); }
public void WhenTypeIsSerializable_ThenReturnClone() { var sut = new DummySerializable(); var result = sut.CloneSerializable(); Assert.That(result, Is.Not.Null); Assert.That(result, Is.Not.SameAs(sut)); }
public void ReadOrCreateWhenFileDoesNotExists(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); var read = testCase.ReadOrCreate(repository, file, () => dummy); Assert.AreSame(dummy, read); }
public void DeepClone() { var dummy = new DummySerializable { Value = 1 }; var clone = BinaryHelper.Clone(dummy); Assert.AreEqual(dummy.Value, clone.Value); Assert.AreNotSame(dummy, clone); }
public void Clone() { var dummy = new DummySerializable { Value = 1 }; var clone = XmlFile.Clone(dummy); Assert.AreNotSame(dummy, clone); Assert.AreEqual(dummy.Value, clone.Value); }
public void CloneWithSettings() { var dummy = new DummySerializable { Value = 1 }; var clone = JsonFile.Clone(dummy, JsonSettings); Assert.AreNotSame(dummy, clone); Assert.AreEqual(dummy.Value, clone.Value); }
public void SaveThenSaveNull(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); testCase.Save(repository, file, dummy); if (repository.Settings is IDataRepositorySettings { SaveNullDeletesFile : true })
public void ReadOrCreateWhenNoMigrationWhenFileExists(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); this.Save(file, dummy); var read = testCase.ReadOrCreate <DummySerializable>(repository, file, () => throw new AssertionException("Should not get here."), new NoMigration()); Assert.AreEqual(1, read.Value); }
public void ReadWhenTrivialMigration(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); this.Save(file, dummy); var read = testCase.Read <DummySerializable>(repository, file, new JsonMigration(x => Migrate(x))); Assert.AreEqual(2, read.Value); Assert.AreEqual(2, testCase.Read <DummySerializable>(repository, file).Value);
public void Read(TestCase testCase) { var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); var dummy = new DummySerializable(1); this.Save(file, dummy); var read = testCase.Read <DummySerializable>(repository, file); Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); }
public void SaveThenReadName() { var dummy = new DummySerializable { Value = 1 }; var file = this.directory.CreateFileInfoInDirectory("dummy.json"); JsonFile.Save(file.FullName, dummy); var read = JsonFile.Read <DummySerializable>(file.FullName); Assert.AreNotSame(dummy, read); Assert.AreEqual(dummy.Value, read.Value); }
public async Task SaveAsyncThenReadWithSettingsName() { var dummy = new DummySerializable { Value = 1 }; var file = this.directory.CreateFileInfoInDirectory("dummy.json"); await JsonFile.SaveAsync(file.FullName, dummy, JsonSettings).ConfigureAwait(false); var read = await JsonFile.ReadAsync <DummySerializable>(file.FullName, JsonSettings).ConfigureAwait(false); Assert.AreNotSame(dummy, read); Assert.AreEqual(dummy.Value, read.Value); }
public void SetUp() { if (_directory.Exists) { DeleteRepositoryDirectory(_directory.FullName); } _directory.Create(); var settings = new JsonRepositorySettings(_directory, null); var gitBackuper = new GitBackuper(settings.DirectoryPath); _repository = new JsonRepository(settings, gitBackuper); _dummy = new DummySerializable(1); }
public void ReadWhenIdentityMigration(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); this.Save(file, dummy); var migration = new IdentityMigration(); var read = testCase.Read <DummySerializable>(repository, file, migration); Assert.AreEqual(1, read.Value); Assert.AreEqual(true, migration.WasCalled); }
public async Task SaveAsyncThenRead() { var dummy = new DummySerializable { Value = 1 }; var file = this.directory.CreateFileInfoInDirectory("dummy.runtimexml"); await XmlFile.SaveAsync(file, dummy).ConfigureAwait(false); var read = await XmlFile.ReadAsync <DummySerializable>(file).ConfigureAwait(false); Assert.AreNotSame(dummy, read); Assert.AreEqual(dummy.Value, read.Value); }
public void SaveThenRead() { var dummy = new DummySerializable { Value = 1 }; var file = this.directory.CreateFileInfoInDirectory("dummy.runtimexml"); XmlFile.Save(file, dummy); var read = XmlFile.Read <DummySerializable>(file); Assert.AreNotSame(dummy, read); Assert.AreEqual(dummy.Value, read.Value); }
public void SaveTwiceWithSettings() { var dummy = new DummySerializable { Value = 1 }; var file = this.directory.CreateFileInfoInDirectory("dummy.json"); JsonFile.Save(file, dummy, JsonSettings); JsonFile.Save(file, dummy, JsonSettings); var read = JsonFile.Read <DummySerializable>(file, JsonSettings); Assert.AreNotSame(dummy, read); Assert.AreEqual(dummy.Value, read.Value); }
public void SaveAndCheckJson() { var fileInfo = this.Directory.CreateFileInfoInDirectory(nameof(DummySerializable) + ".cfg"); var value = new DummySerializable { Value = 1 }; this.Repository.Save(fileInfo, value); var json = System.IO.File.ReadAllText(fileInfo.FullName); Assert.AreEqual("{\r\n \"Value\": 1\r\n}", json); System.IO.File.Delete(fileInfo.FullName); }
public void FileRoundtrip() { var dummy = new DummySerializable { Value = 1 }; BinaryHelper.Save(dummy, _file); AssertFile.Exists(true, _file); var read = BinaryHelper.Read <DummySerializable>(_file); Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); }
public async Task FileAsyncRoundtrip() { var dummy = new DummySerializable { Value = 1 }; await BinaryHelper.SaveAsync(dummy, _file).ConfigureAwait(false); AssertFile.Exists(true, _file); var read = await BinaryHelper.ReadAsync <DummySerializable>(_file).ConfigureAwait(false); Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); }
public void ReadOrCreateWhenFileDoesNotExistsManagesSingleton(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); var read1 = testCase.ReadOrCreate(repository, file, () => dummy); var read2 = testCase.ReadOrCreate(repository, file, () => dummy); if (repository is ISingletonRepository) { Assert.AreSame(read1, read2); } else { Assert.AreNotSame(read1, read2); } }
public void FileRoundtrip() { if (_file.Exists) { _file.Delete(); } var dummy = new DummySerializable { Value = 1 }; XmlHelper.Save(dummy, _file); AssertFile.Exists(true, _file); var read = XmlHelper.Read <DummySerializable>(_file); Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); }
public static void TryRestoreWhenHasSoftDelete() { var dummy = new DummySerializable(1); var file = CreateFile(); var backup = CreateBackupFile(); var softDelete = file.SoftDeleteFile(); softDelete.Save(dummy); AssertFile.Exists(false, file); AssertFile.Exists(true, softDelete); Assert.IsTrue(NullBackuper.Default.CanRestore(file)); Assert.IsTrue(NullBackuper.Default.TryRestore(file)); Assert.AreEqual(dummy, file.Read <DummySerializable>()); AssertFile.Exists(true, file); AssertFile.Exists(false, softDelete); AssertFile.Exists(false, backup); }
public void ReadManagesSingleton(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); this.Save(file, dummy); var read1 = testCase.Read <DummySerializable>(repository, file); var read2 = testCase.Read <DummySerializable>(repository, file); if (repository is ISingletonRepository) { Assert.AreSame(read1, read2); } else { Assert.AreNotSame(read1, read2); } }
public void ReadOrCreateWhenFileExistsManagesSingleton(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); this.Save(file, dummy); var read1 = testCase.ReadOrCreate <DummySerializable>(repository, file, () => throw new AssertionException("Should not get here.")); var read2 = testCase.ReadOrCreate <DummySerializable>(repository, file, () => throw new AssertionException("Should not get here.")); if (repository is ISingletonRepository) { Assert.AreSame(read1, read2); } else { Assert.AreNotSame(read1, read2); } }
public void SaveThenRead(TestCase testCase) { var dummy = new DummySerializable(1); var repository = this.CreateRepository(); var file = testCase.File <DummySerializable>(repository); testCase.Save(repository, file, dummy); var read = testCase.Read <DummySerializable>(repository, file); if (repository is ISingletonRepository) { Assert.AreSame(dummy, read); } else { Assert.AreEqual(dummy.Value, read.Value); Assert.AreNotSame(dummy, read); } }
public void SetUp() { if (this.directory.Exists) { DeleteRepositoryDirectory(this.directory.FullName); } this.directory.Create(); var settings = new RepositorySettings( directory: this.directory.FullName, jsonSerializerSettings: RepositorySettings.CreateDefaultJsonSettings(), isTrackingDirty: false, backupSettings: null); var gitBackuper = new GitBackuper(settings.Directory); this.repository = new SingletonRepository(settings, gitBackuper); this.dummy = new DummySerializable(1); }
public static void TryRestoreWhenHasBackupAndOriginal() { var dummy = new DummySerializable(-1); var file = CreateFile(); var backup = CreateBackupFile(); var softDelete = file.SoftDeleteFile(); file.WriteAllText("File"); backup.Save(dummy); AssertFile.Exists(true, file); AssertFile.Exists(false, softDelete); AssertFile.Exists(true, backup); var backuper = Backuper.Create(new BackupSettings(Directory.FullName, BackupSettings.DefaultExtension, BackupSettings.DefaultTimeStampFormat, 2, 3)); var exception = Assert.Throws <InvalidOperationException>(() => backuper.TryRestore(file)); StringAssert.IsMatch(@"Expected file .*BackuperTests\\TryRestoreWhenHasBackupAndOriginal.cfg to not exist.", exception !.Message); AssertFile.Exists(true, file); AssertFile.Exists(false, softDelete); AssertFile.Exists(true, backup); }
protected RepositoryTests() { Directory = new DirectoryInfo(@"C:\Temp\Gu.Settings\" + GetType().Name); //Directories.Default = Directory; _dummy = new DummySerializable(1); }