public bool Update(Kid updateKid) { bool updateSuccessful; if (updateKid == null || !updateKid.IsValidUpdate()) throw new ArgumentException(); var cmd = DBUtility.SqlCommand("Kid_Update"); SqlTransaction transaction; // Start a local transaction. transaction = cmd.Connection.BeginTransaction(IsolationLevel.ReadCommitted, "XKid_Update"); cmd.Transaction = transaction; try { cmd.Parameters.Add("@KidID", SqlDbType.Int); cmd.Parameters.Add("@Name", SqlDbType.Text, 50); cmd.Parameters.Add("@Email", SqlDbType.Text, 150); cmd.Parameters["@KidID"].Value = updateKid.KidID; cmd.Parameters["@Name"].Value = updateKid.Name; cmd.Parameters["@Email"].Value = updateKid.Email; int returnValue = cmd.ExecuteNonQuery(); transaction.Commit(); if (returnValue < 0) { throw new Exception("Error Text Added to the Database: " + returnValue.ToString()); } else { updateSuccessful = true; } } catch (Exception e) { try { transaction.Rollback(); } catch (SqlException ex) { if (transaction.Connection != null) { Console.WriteLine("An exception of type " + ex.GetType() + " was encountered while attempting to roll back the transaction."); } } Console.WriteLine("An exception of type " + e.GetType() + " was encountered while inserting the data."); Console.WriteLine("Neither record was written to database."); updateSuccessful = false; } return updateSuccessful; }
public void EmptyRecord_KidDataAccess_Update_ThrowError() { // Arrange var newKid = new Kid(); var addKid = new KidDataAccess(); // Act // Assert Assert.Throws<ArgumentException>(() => addKid.Update(newKid)); }
public void Valid_KidDataAccess_Insert_AddsKid(string name, string email) { // Arrange var newKid = new Kid(); newKid.Name = name; newKid.Email = email; var addKid = new KidDataAccess(); // Act var result = addKid.Insert(newKid); // Assert Assert.AreEqual(true, result, "We should have Inserted the Record"); }
public void Valid_KidDataAccess_Update_updateKid(string name, string email) { // Arrange var updateKid = new Kid(); updateKid.KidID = _integrationForUpdate; updateKid.Name = name; updateKid.Email = email; var addKid = new KidDataAccess(); // Act var result = addKid.Update(updateKid); // Assert Assert.AreEqual(true, result, "We should have Updated the Record"); }