//Create multiple accounts and users. Execute deletion of multiple users.
        public void DeleteMultipleUsers_Pass()
        {
            //Arrange
            bool expected = true;

            Account               testAccount = new Account("tester2Email", "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), "tester2Email", "Collin", "Damarines", "Activated", DateTime.Now, "Male");

            Account testAccount2 = new Account("tester3Email", "testHashedPassword2", "testSalt");

            cas = new SqlCreateAccountService(testAccount2, daos);
            cas.Create();
            User testUser2 = new User(mapperDAO.GetSysID(testAccount2.UserEmail), "tester3Email", "Woodrow", "Buthavenopaddle", "Activated", DateTime.Now, "Male");

            List <User> testUsers = new List <User>();

            testUsers.Add(testUser);
            testUsers.Add(testUser2);

            //Act
            IDeleteAccountService deleter = new DeleteAccountSQLService(testUsers, systemDB, mappingDB, accountDB);
            IResult deleteResult          = deleter.Delete();
            bool    actual = deleteResult.IsSuccess;

            //Assert
            Assert.AreEqual(expected, actual);
        }
 public UserManagementManager(JWTService authService, AuthenticationService authenticationService, SqlCreateAccountService createAccountService, DeleteAccountSQLService deleteAccountService, UpdateAccountSqlService updateAccountService, PermissionUpdateSqlService updatePermissionService)
 {
     //_newAccountDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User));
     //_newMappingDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
     //_newUserDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
     //_mapperDAO = new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
     //_systemDB = new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
     //_mappingDB = new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
     //_accountDB = new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User));
     _updatePermissionService = updatePermissionService;
     _updateAccountService    = updateAccountService;
     _createAccountService    = createAccountService;
     _deleteAccountService    = deleteAccountService;
     _authNService            = authenticationService;
     _authService             = authService;
 }
        public UserManagementManager()
        {
            var sqlDao           = new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
            var createAccountDAO = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User));
            var newMappingDAO    = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
            var newUserDAO       = new SqlCreateAccountDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User));
            var mapperDAO        = new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User));
            var bunchedDaos      = new CreateAccountDAOs(createAccountDAO, newMappingDAO, newUserDAO, mapperDAO);

            _updatePermissionService = new PermissionUpdateSqlService(new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)), new SqlMapperDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User)));
            _updateAccountService    = new UpdateAccountSqlService(new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)));
            _createAccountService    = new SqlCreateAccountService(bunchedDaos);
            _deleteAccountService    = new DeleteAccountSQLService(new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)), new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionMapping", EnvironmentVariableTarget.User)), new SqlDAO(Environment.GetEnvironmentVariable("sqlConnectionAccount", EnvironmentVariableTarget.User)));
            _authNService            = new AuthenticationService(new GetUserDao(Environment.GetEnvironmentVariable("sqlConnectionSystem", EnvironmentVariableTarget.User)));
            _authService             = new JWTService();
        }
        //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);
        }