public void PrimaryKeyCollisionResolverMultilation_Check_ThrowsBecauseNoColumnOrderConfigured() { TableInfo t; ColumnInfo c1; ColumnInfo c2; ColumnInfo c3; SetupTableInfos(out t, out c1, out c2, out c3); try { var mutilation = new PrimaryKeyCollisionResolverMutilation(); mutilation.TargetTable = t; try { mutilation.Check(new ThrowImmediatelyCheckNotifier()); Assert.Fail("Should have crashed before here"); } catch (Exception e) { Assert.AreEqual("Failed to check PrimaryKeyCollisionResolver on PrimaryKeyCollisionResolverTests", e.Message); Assert.AreEqual("TableInfo PrimaryKeyCollisionResolverTests does not have any primary keys defined so cannot resolve primary key collisions", e.InnerException.Message); } } finally { t.DeleteInDatabase(); } }
public void PrimaryKeyCollisionResolverMultilation_Check_Passes() { TableInfo t; ColumnInfo c1; ColumnInfo c2; ColumnInfo c3; SetupTableInfos(out t, out c1, out c2, out c3); try { var mutilation = new PrimaryKeyCollisionResolverMutilation(); mutilation.TargetTable = t; c1.IsPrimaryKey = true; c1.SaveToDatabase(); c2.DuplicateRecordResolutionOrder = 1; c2.DuplicateRecordResolutionIsAscending = true; c2.SaveToDatabase(); c3.DuplicateRecordResolutionOrder = 2; c3.DuplicateRecordResolutionIsAscending = false; c3.SaveToDatabase(); Assert.DoesNotThrow(() => mutilation.Check(new ThrowImmediatelyCheckNotifier())); } finally { t.DeleteInDatabase(); } }
public void PrimaryKeyCollisionResolverMultilation_Check_ThrowsBecauseNotInitialized() { var mutilation = new PrimaryKeyCollisionResolverMutilation(); var ex = Assert.Throws <Exception>(() => mutilation.Check(new ThrowImmediatelyCheckNotifier())); StringAssert.Contains("Target table is null, a table must be specified upon which to resolve primary key duplication (that TableInfo must have a primary key collision resolution order)", ex.Message); }