public void TestTablePrimaryKey() { // Prepare and Cleanup Database.RegisterDataObject(typeof(TestTablePrimaryKey)); var all = Database.SelectAllObjects<TestTablePrimaryKey>(); foreach(var obj in all) Database.DeleteObject(obj); var none = Database.SelectAllObjects<TestTablePrimaryKey>(); Assert.IsEmpty(none, "Database shouldn't have any record For TestTableUniqueField."); // Test Add var uniqueObj = new TestTablePrimaryKey { TestField = "Test Value", PrimaryKey = "Key1" }; var inserted = Database.AddObject(uniqueObj); Assert.IsTrue(inserted, "Test Table Primary Key could not insert unique key object."); // Try Adding with unique Value var otherUniqueObj = new TestTablePrimaryKey { TestField = "Test Value Other", PrimaryKey = "Key1" }; var otherInserted = Database.AddObject(otherUniqueObj); Assert.IsFalse(otherInserted, "Test Table Primary Key with Other Object violating key constraint should not be inserted."); // Try Adding with non unique Value var otherNonUniqueObj = new TestTablePrimaryKey { TestField = "Test Value Other Non-Primary", PrimaryKey = "Key2" }; var nonUniqueInserted = Database.AddObject(otherNonUniqueObj); Assert.IsTrue(nonUniqueInserted, "Test Table Primary Key with Other Non Unique Key could not be inserted"); // Try saving with unique Value var retrieved = Database.FindObjectByKey<TestTablePrimaryKey>(otherNonUniqueObj.PrimaryKey); retrieved.ObjectId = uniqueObj.ObjectId; retrieved.TestField = "Changed Test Field"; var saved = Database.SaveObject(retrieved); Assert.IsFalse(saved, "Test Table Primary Key with Retrieved Object violating key constraint should not be saved."); // Delete Previous Unique and Try Reinsert. var deleted = Database.DeleteObject(uniqueObj); Assert.IsTrue(deleted, "Test Table Primary Key could not delete unique key object."); Assert.IsTrue(uniqueObj.IsDeleted, "Test Table Primary Key unique key object should have delete flag set."); var retrievedSaved = Database.SaveObject(retrieved); Assert.IsTrue(retrievedSaved, "Test Table Primary Key Retrieved Object could not be inserted after deleting previous constraint violating object."); }
public void TestSingleFindObjectByKeyPrimaryKey() { Database.RegisterDataObject(typeof(TestTablePrimaryKey)); var obj = new TestTablePrimaryKey { PrimaryKey = DOL.Database.UniqueID.IDGenerator.GenerateID(), TestField = "Test For Single Find Object By Primary Key" }; var inserted = Database.AddObject(obj); Assert.IsTrue(inserted, "Find Object By Key Test Could not add object in database..."); var retrieve = Database.FindObjectByKey<TestTablePrimaryKey>(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 retrieveCase = Database.FindObjectByKey<TestTablePrimaryKey>(obj.PrimaryKey.ToUpper()); Assert.IsNotNull(retrieveCase, "Find Object By Key Could not retrieve previously added Object using Case Mismatch..."); Assert.AreEqual(obj.PrimaryKey, retrieveCase.PrimaryKey, "Find Object By Key Should return similar Object to created one..."); Assert.AreEqual(obj.TestField, retrieveCase.TestField, "Find Object By Key Should return similar Object to created one..."); }