public void HouseHoldCreatePass() { //Arrange bool expected = true; //Act Account testAccount = new Account("testerEmail", "testHashedPassword", "testSalt"); DeleteUser(testAccount.UserEmail); DeleteMapping(testAccount.UserEmail); DeleteAccount(testAccount.UserEmail); CreateAccountDAOs daos = new CreateAccountDAOs(newAccountDAO, newMappingDAO, newUserDAO, mapperDAO); ICreateAccountService cas = new SqlCreateAccountService(testAccount, daos); HouseHoldManager mr = new HouseHoldManager(); cas.Create(); int sid = mapperDAO.GetSysID("testerEmail"); User testUser = new User(sid, "testerEmail", "testerFname", "testerLname", "Enable", DateTime.Today, "Male"); HouseholdCreationRequestDTO request = new HouseholdCreationRequestDTO { Requester = "testerEmail", StreetAddress = "TestStreetAddress", City = "TestCity", Zip = 92868, SuiteNumber = "TestSuiteNumber", Rent = 1500.00 }; IResult result = mr.CreateNewHouseHold(request); Console.WriteLine("New HouseHold ID is: " + result.Message); int hID = Int32.Parse(result.Message); Console.WriteLine("New HouseHold ID is: " + result.Message); DeleteUser(testAccount.UserEmail); DeleteMapping(testAccount.UserEmail); DeleteAccount(testAccount.UserEmail); mr.DeleteHouseHold(hID); bool actual = result.IsSuccess; //Assert Assert.AreEqual(expected, actual); }
//Create a new acccount and a matching user. Execute deletion for a single user. public void DeleteSingleUser_Pass() { //Arrange bool expected = true; Account testAccount = new Account("tester1Email", "testHashedPassword", "testSalt"); CreateAccountDAOs daos = new CreateAccountDAOs(newAccountDAO, newMappingDAO, newUserDAO, mapperDAO); ICreateAccountService cas = new SqlCreateAccountService(testAccount, daos); cas.Create(); User testUser = new User(mapperDAO.GetSysID(testAccount.UserEmail), "tester1Email", "Collin", "Damarines", "Activated", DateTime.Now, "Male"); //Act IDeleteAccountService deleter = new DeleteAccountSQLService(testUser, systemDB, mappingDB, accountDB); IResult deleteResult = deleter.Delete(); bool actual = deleteResult.IsSuccess; Console.WriteLine(deleteResult.Message); //Assert Assert.AreEqual(expected, actual); }
/// <summary> /// Method that gonna craft query for account, mapping and user table. After a new account is created, the new /// sysID will be used to create a mapping and then based on the mapping, a new user will be created. /// </summary> ///<returns>IResult true or false with error message</returns> public IResult Create() { string message = ""; bool isSuccess = true; int totalSuccessed = 0; foreach (Account newAccount in _newAccounts) { var cmd = new SqlCommand(ConfigurationManager.AppSettings["queryCreateAccount"]); cmd.Parameters.AddWithValue("@email", newAccount.UserEmail); cmd.Parameters.AddWithValue("@hashedPw", newAccount.HashedPassword); cmd.Parameters.AddWithValue("@salt", newAccount.Salt); int rowsChanged = newAccountDAO.RunQuery(cmd); if (rowsChanged > 0) { cmd = new SqlCommand(ConfigurationManager.AppSettings["queryCreateMapping"]); cmd.Parameters.AddWithValue("@email", newAccount.UserEmail); rowsChanged = newMappingDAO.RunQuery(cmd); if (rowsChanged > 0) { int sysID = mapperDAO.GetSysID(newAccount.UserEmail); if (sysID != -1) { cmd = new SqlCommand(ConfigurationManager.AppSettings["queryCreateUser"]); cmd.Parameters.AddWithValue("@sysId", sysID); cmd.Parameters.AddWithValue("@email", newAccount.UserEmail); cmd.Parameters.AddWithValue("@status", "Enable"); rowsChanged = newUserDAO.RunQuery(cmd); if (rowsChanged > 0) { totalSuccessed += 1; } else { message += "failed create user for " + newAccount.UserEmail + "\n"; //Environment.newline } } } else { message += "failed create mapping for " + newAccount.UserEmail + "\n"; //str concat memory inefficient --> stringbuilder } } else { message += newAccount.UserEmail + "\n"; //inversion--> if (rowsChanged < 0) //use break/continue } } if (totalSuccessed == _newAccounts.Count) { message = ConfigurationManager.AppSettings["CreateAccountSuccess"]; } else { isSuccess = false; } return(new CheckResult(message, isSuccess)); }