コード例 #1
0
		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.");
		}
コード例 #2
0
		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...");
		}