public void CreateAdminTest()
        {
            //connections variables and dataset
            List<string> errors = new List<string>();
            using (var scop = new System.Transactions.TransactionScope())
            {
                //test parameters
                AdminLogin adminLogin = new AdminLogin();
                adminLogin.admin_name = "create admin test";
                adminLogin.admin_password  = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name  = "test"; // TODO: Initialize to an appropriate value
                adminLogin.middle_name  = "test"; // TODO: Initialize to an appropriate value
                adminLogin.last_name  = "test"; // TODO: Initialize to an appropriate value
                adminLogin.admin_id = DALAdminLogins.CreateAdmin(adminLogin, ref errors);
                AdminLogin check = DALAdminLogins.GetAdminInfo(adminLogin.admin_id, ref errors);

                //assert test result to be equal to newrly created data
                Assert.AreEqual(0, errors.Count);
                Assert.IsNotNull(check);
                Assert.AreEqual(adminLogin.admin_id, check.admin_id);
                Assert.AreEqual(adminLogin.admin_name,check.admin_name);
                Assert.AreEqual(adminLogin.admin_password, check.admin_password);
                Assert.AreEqual(adminLogin.first_name, check.first_name);
                Assert.AreEqual(adminLogin.middle_name, check.middle_name);
                Assert.AreEqual(adminLogin.last_name, check.last_name);
            }
        }
        public void CheckAdminLoginPasswordTest()
        {
            //connections variables and dataset
            SqlConnection conn = new SqlConnection(connection_string);
            List<string> errors = new List<string>();
            using (var scope = new System.Transactions.TransactionScope())
            {
                AdminLogin adminLogin = new AdminLogin();
                adminLogin.admin_name = "create admin test";
                adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.middle_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.last_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.admin_id = DALAdminLogins.CreateAdmin(adminLogin, ref errors);

                AdminLogin check = DALAdminLogins.CheckAdminLoginPassword(adminLogin.admin_name, adminLogin.admin_password, ref errors);
                Assert.AreEqual(0, errors.Count);
                Assert.IsNotNull(check);
                Assert.AreEqual(adminLogin.admin_id, check.admin_id);
                Assert.AreEqual(adminLogin.admin_name, check.admin_name);
                Assert.AreEqual(adminLogin.admin_password, check.admin_password);
                Assert.AreEqual(adminLogin.first_name, check.first_name);
                Assert.AreEqual(adminLogin.middle_name, check.middle_name);
                Assert.AreEqual(adminLogin.last_name, check.last_name);
            }
        }
        public void CreateAdminLoginTest()
        {
            AdminLogin adminLogin = new AdminLogin();
            List<string> errors = new List<string>();
            adminLogin.admin_name = "BLcreateadmintest";
            adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
            adminLogin.first_name = "test"; // TODO: Initialize to an appropriate value
            adminLogin.middle_name = "test"; // TODO: Initialize to an appropriate value
            adminLogin.last_name = "test"; // TODO: Initialize to an appropriate value
            AdminLogin check = new AdminLogin();
            using (var scop = new System.Transactions.TransactionScope())
            {
                //insert
                BLAdminLogins.CreateAdminLogin(adminLogin, ref errors);
                check = BLAdminLogins.GetAdminInfo(adminLogin.admin_id.ToString(), ref errors);
                Assert.AreEqual(0, errors.Count);
                Assert.IsNotNull(check);
                Assert.AreEqual(adminLogin.admin_id, check.admin_id);
                Assert.AreEqual(adminLogin.admin_name, check.admin_name);
                Assert.AreEqual(adminLogin.admin_password, check.admin_password);
                Assert.AreEqual(adminLogin.first_name, check.first_name);
                Assert.AreEqual(adminLogin.middle_name, check.middle_name);
                Assert.AreEqual(adminLogin.last_name, check.last_name);

                //update
                adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name = "updated BL "; // TODO: Initialize to an appropriate value
                adminLogin.middle_name = "updated BL"; // TODO: Initialize to an appropriate value
                adminLogin.last_name = "updated BL"; // TODO: Initialize to an appropriate value
                BLAdminLogins.UpdateAdmin(adminLogin, ref errors);
                check = BLAdminLogins.GetAdminInfo(adminLogin.admin_id.ToString(), ref errors);
                Assert.AreEqual(0, errors.Count);
                Assert.IsNotNull(check);
                Assert.AreEqual(adminLogin.admin_id, check.admin_id);
                Assert.AreEqual(adminLogin.admin_name, check.admin_name);
                Assert.AreEqual(adminLogin.admin_password, check.admin_password);
                Assert.AreEqual(adminLogin.first_name, check.first_name);
                Assert.AreEqual(adminLogin.middle_name, check.middle_name);
                Assert.AreEqual(adminLogin.last_name, check.last_name);

                //detele
                BLAdminLogins.DeleteAdmin(adminLogin.admin_id.ToString(), ref errors);
                check = BLAdminLogins.GetAdminInfo(adminLogin.admin_id.ToString(), ref errors);
                Assert.AreEqual(0, errors.Count);
                Assert.IsNull(check);

            }
        }
 public static void CreateAdminLogin(AdminLogin adminLogin, ref List<string> errors)
 {
     if (adminLogin == null)
     {
         errors.Add("AdminLogin cannot be null");
     }
     else if (adminLogin.admin_password.Length < 6)
     {
         errors.Add("Password must be 6 letters or more");
     }
     else if (adminLogin.admin_name.Length < 6)
     {
         errors.Add("Username must be 6 letters or more");
     }
     else
     {
         Regex regex1 = new Regex("[A-Za-z]");
         Regex regex2 = new Regex("\\d");
         Regex regex3 = new Regex("^[a-zA-Z0-9_]+$");
         if (!regex1.IsMatch(adminLogin.admin_password))
         {
             errors.Add("Password must has at least one letter and one digit");
         }
         if (!regex2.IsMatch(adminLogin.admin_password))
         {
             errors.Add("Password must has at least one digit and one digit");
         }
         if (!regex3.IsMatch(adminLogin.admin_name))
         {
             errors.Add("Usernames cannot contain special characters");
         }
     }
     if (errors.Count > 0)
     {
         AsynchLog.LogNow(errors);
         return;
     }
     adminLogin.admin_id = DALAdminLogins.CreateAdmin(adminLogin, ref errors);
 }
 public void UpdateAdmin(AdminLogin adminLogin, ref List<string> errors)
 {
     BLAdminLogins.UpdateAdmin(adminLogin, ref errors);
 }
        public void InsertAdminLoginErrorTest()
        {
            List<string> errors = new List<string>();

            BLAdminLogins.CreateAdminLogin(null, ref errors);
            Assert.AreEqual(1, errors.Count);

            errors = new List<string>();

            AdminLogin AdminLogin = new AdminLogin();
            AdminLogin.admin_name = "";
            AdminLogin.admin_password = "******";
            BLAdminLogins.CreateAdminLogin(AdminLogin, ref errors);
            Assert.AreEqual(1, errors.Count);
        }
        public void UpdateAdminTest()
        {
            //connections variables and dataset
            SqlConnection conn = new SqlConnection(connection_string);
            List<string> errors = new List<string>();
            using (var scope = new System.Transactions.TransactionScope())
            {
                //test parameters
                AdminLogin adminLogin = new AdminLogin();
                adminLogin.admin_name = "update admin test";
                adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.middle_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.last_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.admin_id = DALAdminLogins.CreateAdmin(adminLogin, ref errors);

                adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name = "updated"; // TODO: Initialize to an appropriate value
                adminLogin.middle_name = "updated"; // TODO: Initialize to an appropriate value
                adminLogin.last_name = "updated"; // TODO: Initialize to an appropriate value

                //initialize data to be tested against
                DALAdminLogins.UpdateAdmin(adminLogin, ref errors);
                AdminLogin check = DALAdminLogins.GetAdminInfo(adminLogin.admin_id, ref errors);

                Assert.AreEqual(0, errors.Count);
                //assert test result, dataset should have updated admin info
                Assert.IsNotNull(check);
                Assert.AreEqual(adminLogin.admin_id, check.admin_id);
                Assert.AreEqual(adminLogin.admin_name, check.admin_name);
                Assert.AreEqual(adminLogin.admin_password, check.admin_password);
                Assert.AreEqual(adminLogin.first_name, check.first_name);
                Assert.AreEqual(adminLogin.middle_name, check.middle_name);
                Assert.AreEqual(adminLogin.last_name, check.last_name);
            }
        }
        public void ListAdminsTest()
        {
            //connections variables and dataset
            List<string> errors = new List<string>();
            using (var scope = new System.Transactions.TransactionScope())
            {
                //initialize data to be tested against
                AdminLogin adminLogin = new AdminLogin();
                adminLogin.admin_name = "list admin test";
                adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.middle_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.last_name = "test"; // TODO: Initialize to an appropriate value
                DALAdminLogins.CreateAdmin(adminLogin, ref errors);

                AdminLogin adminLogin2 = new AdminLogin();
                adminLogin2.admin_name = "list admin1test";
                adminLogin2.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin2.first_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin2.middle_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin2.last_name = "test"; // TODO: Initialize to an appropriate value
                DALAdminLogins.CreateAdmin(adminLogin2, ref errors);

                List<AdminLogin> expected_AdminLogins = new List<AdminLogin>();
                expected_AdminLogins.Add(adminLogin);
                expected_AdminLogins.Add(adminLogin2);
                //assert test result, list count should have increased by 5
                List<AdminLogin> adminLogins = DALAdminLogins.ListAdmins(ref errors);
                for (int i = 0;i < expected_AdminLogins.Count; i++)
                {
                    Assert.AreEqual(expected_AdminLogins[i].admin_name,adminLogins[i].admin_name);
                }
                Assert.AreEqual(2, adminLogins.Count);
                Assert.AreEqual(0, errors.Count);
            }
        }
        public void DeleteAdminTest()
        {
            //connections variables and dataset
            SqlConnection conn = new SqlConnection(connection_string);
            List<string> errors = new List<string>();
            using (var scope = new System.Transactions.TransactionScope())
            {
                //initialize data to be tested against
                AdminLogin adminLogin = new AdminLogin();
                adminLogin.admin_name = "delete admin test";
                adminLogin.admin_password = "******"; // TODO: Initialize to an appropriate value
                adminLogin.first_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.middle_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.last_name = "test"; // TODO: Initialize to an appropriate value
                adminLogin.admin_id = DALAdminLogins.CreateAdmin(adminLogin, ref errors);
                DALAdminLogins.DeleteAdmin(adminLogin.admin_id, ref errors);

                //filling the dataset with test method result
                AdminLogin check = DALAdminLogins.GetAdminInfo(adminLogin.admin_id, ref errors);

                //assert test result, getting info using the deleted ID should return null
                Assert.AreEqual(0, errors.Count);
                Assert.IsNull(check);
            }
        }