public void TestTableAutoIncrement() { // Prepare and Cleanup Database.RegisterDataObject(typeof(TestTableAutoInc)); var all = Database.SelectAllObjects<TestTableAutoInc>(); foreach(var obj in all) Database.DeleteObject(obj); var none = Database.SelectAllObjects<TestTableAutoInc>(); Assert.IsEmpty(none, "Database shouldn't have any record For TestTableAutoInc."); var addObj = new TestTableAutoInc() { TestField = "Test AutoInc" }; // Insert a Test Object for guessing last auto increment var inserted = Database.AddObject(addObj); Assert.IsTrue(inserted, "Test Table Auto Inc could not insert a new Entry."); var autoInc = addObj.PrimaryKey; Assert.AreNotEqual(autoInc, default(int), "Test Table Auto Inc Primary should not be Default value after insertion."); // Add Another Object to Check Primary Key Increment var otherObj = new TestTableAutoInc() { TestField = "Test AutoInc Other" }; var otherInsert = Database.AddObject(otherObj); Assert.IsTrue(otherInsert, "Test Table Auto Inc could not insert an other Entry."); var otherAutoInc = otherObj.PrimaryKey; Assert.Greater(otherAutoInc, autoInc, "Newly Inserted Test Table Auto Inc Other Entry should have a Greater Primary Key Increment."); // Try Deleting and Re-inserting var reDeleted = Database.DeleteObject(otherObj); Assert.IsTrue(reDeleted, "Test Table Auto Inc could not delete other Entry from Table."); Assert.IsTrue(otherObj.IsDeleted, "Test Table Auto Inc other Entry deleted Flag should be true."); Assert.IsFalse(otherObj.IsPersisted, "Test Table Auto Inc other Entry Persisted Flag should be false."); otherObj.PrimaryKey = default(int); var reInserted = Database.AddObject(otherObj); Assert.IsTrue(reInserted, "Test Table Auto Inc could not insert other Entry in Table again."); Assert.Greater(otherObj.PrimaryKey, otherAutoInc, "Re-Added Test Table Auto Inc Entry should have a Greater Primary Key Increment."); // Try modifying to check that Primary Key is Used for Update Where Clause otherObj.TestField = "Test AutoInc Other Modified !"; Assert.IsTrue(otherObj.Dirty, "Test Table Auto Inc Other Object should be Dirty after Modifications."); var modified = Database.SaveObject(otherObj); Assert.IsTrue(modified, "Test Table Auto Inc Other Object could not be Modified."); Assert.IsFalse(otherObj.Dirty, "Test Table Auto Inc Other Object should not be Dirty after save."); var retrieve = Database.FindObjectByKey<TestTableAutoInc>(otherObj.PrimaryKey); Assert.IsNotNull(retrieve, "Test Table Auto Inc Other Object could not be Retrieved through Primary Key."); Assert.AreEqual(otherObj.TestField, retrieve.TestField, "Test Table Auto Inc Retrieved Object is different from Other Object."); }
public void TestSingleFindObjectByKeyPrimaryKeyAutoInc() { Database.RegisterDataObject(typeof(TestTableAutoInc)); var obj = new TestTableAutoInc { TestField = "Test For Single Find Object By Primary Key Auto Inc" }; var inserted = Database.AddObject(obj); Assert.IsTrue(inserted, "Find Object By Key Test Could not add object in database..."); var retrieve = Database.FindObjectByKey<TestTableAutoInc>(obj.PrimaryKey); Assert.IsNotNull(retrieve, "Find Object By Key Could not retrieve previously added Object..."); Assert.AreEqual(obj.PrimaryKey, retrieve.PrimaryKey, "Find Object By Key Should return similar Object to created one..."); Assert.AreEqual(obj.TestField, retrieve.TestField, "Find Object By Key Should return similar Object to created one..."); var retrieveCast = Database.FindObjectByKey<TestTableAutoInc>((long)obj.PrimaryKey); Assert.IsNotNull(retrieveCast, "Find Object By Key Could not retrieve previously added Object using Numeric Cast..."); Assert.AreEqual(obj.PrimaryKey, retrieveCast.PrimaryKey, "Find Object By Key Should return similar Object to created one..."); Assert.AreEqual(obj.TestField, retrieveCast.TestField, "Find Object By Key Should return similar Object to created one..."); var retrieveString = Database.FindObjectByKey<TestTableAutoInc>(obj.PrimaryKey.ToString()); Assert.IsNotNull(retrieveString, "Find Object By Key Could not retrieve previously added Object using String Cast..."); Assert.AreEqual(obj.PrimaryKey, retrieveString.PrimaryKey, "Find Object By Key Should return similar Object to created one..."); Assert.AreEqual(obj.TestField, retrieveString.TestField, "Find Object By Key Should return similar Object to created one..."); }