public void Deletes_data_from_cyclic_foreign_keyed_tables() { // Arrange var a = new CyclicForeignKeyA(); a.Id = this.database.Insert <int>(a); var b = new CyclicForeignKeyB { ForeignId = a.Id }; b.Id = this.database.Insert <int>(b); var c = new CyclicForeignKeyC { ForeignId = b.Id }; c.Id = this.database.Insert <int>(c); a.ForeignId = c.Id; this.database.Update(a); var sut = new DataWiper(); // Act sut.ClearAllData(this.database); // Assert this.database.Count <CyclicForeignKeyA>().Should().Be(0); this.database.Count <CyclicForeignKeyB>().Should().Be(0); this.database.Count <CyclicForeignKeyC>().Should().Be(0); }
public void Deletes_data_from_cyclic_foreign_keyed_tables(IDialect dialect) { using (var database = BlankDatabaseFactory.MakeDatabase(dialect)) { // Arrange var a = new CyclicForeignKeyA(); a.Id = database.Insert <int>(a); var b = new CyclicForeignKeyB { ForeignId = a.Id }; b.Id = database.Insert <int>(b); var c = new CyclicForeignKeyC { ForeignId = b.Id }; c.Id = database.Insert <int>(c); a.ForeignId = c.Id; database.Update(a); // Act DataWiper.ClearAllData(database); // Assert database.Count <CyclicForeignKeyA>().Should().Be(0); database.Count <CyclicForeignKeyB>().Should().Be(0); database.Count <CyclicForeignKeyC>().Should().Be(0); } }