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");

        }