Ejemplo n.º 1
0
        public async Task TransferMoney_TransferConcurrentData_ReturnsBadRequest()
        {
            var isWithBadRequest = false;
            List <HttpResponseMessage> responses = new List <HttpResponseMessage>();
            var sourceUser = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "sourceuser",
                LastName       = "sourceuser",
                Password       = "******",
                InitialBalance = 10
            };
            var destinationUser = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "destinationuser",
                LastName       = "destinationuser",
                Password       = "******",
                InitialBalance = 0
            };
            var sourceUserCreated = await CreateUser(sourceUser);

            var sourceUserID = await sourceUserCreated.Content.ReadAsAsync <Guid>();

            var destinationUserCreated = await CreateUser(destinationUser);

            var destinationUserID = await destinationUserCreated.Content.ReadAsAsync <Guid>();

            var transferMoney = new transferMoneyDTO()
            {
                SourceAccountID      = sourceUserID,
                DestinationAccountID = destinationUserID,
                Amount = 1
            };
            List <Task> tasks = new List <Task>();

            for (int i = 1; i <= 11; i++)
            {
                tasks.Add(Task.Run(() =>
                {
                    var response = TransferMoney(transferMoney);
                    responses.Add(response.Result);
                }));
            }
            Task.WaitAll(tasks.ToArray());
            foreach (HttpResponseMessage httpResponse in responses)
            {
                if (httpResponse.StatusCode == HttpStatusCode.BadRequest)
                {
                    isWithBadRequest = true;
                }
            }

            Assert.That(isWithBadRequest, Is.EqualTo(true));
        }
Ejemplo n.º 2
0
        public async Task TransferMoney_TransferGreaterAmountThanYourBalance_ReturnsCannotTransferGreaterThanYourAmount()
        {
            //Arrange
            var expectedResult = "You cannot transfer money greater than your balance";
            var sourceUser     = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "sourceuser1",
                LastName       = "sourceuser1",
                Password       = "******",
                InitialBalance = 10
            };
            var destinationUser = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "destinationuser1",
                LastName       = "destinationuser1",
                Password       = "******",
                InitialBalance = 0
            };
            var sourceUserCreated = await CreateUser(sourceUser);

            var sourceUserID = await sourceUserCreated.Content.ReadAsAsync <Guid>();

            var destinationUserCreated = await CreateUser(destinationUser);

            var destinationUserID = await destinationUserCreated.Content.ReadAsAsync <Guid>();

            //await AuthenticateAsync();


            //Act
            var transferMoney = new transferMoneyDTO()
            {
                SourceAccountID      = sourceUserID,
                DestinationAccountID = destinationUserID,
                Amount = 11
            };
            var response = await TransferMoney(transferMoney);

            string responseMessage = response.Content.ReadAsStringAsync().Result;

            // Assert
            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
            Assert.That(expectedResult, Is.EqualTo(responseMessage));
        }
        public async Task <IActionResult> Register(userForRegisterDTO model)
        {
            var user = new User {
                UserName   = model.UserName,
                Email      = model.Email,
                Name       = model.Name,
                Gender     = model.Gender,
                Created    = DateTime.Now,
                LastActive = DateTime.Now
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                return(StatusCode(201));
            }
            return(BadRequest(result.Errors));
        }
Ejemplo n.º 4
0
        public async Task Register_RegisterWithExistingUser_ReturnsBadRequest()
        {
            var registrationDTO = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "sample",
                LastName       = "sample",
                Password       = "******",
                InitialBalance = 10
            };
            var response = await CreateUser(registrationDTO);

            var responseMessage = response.Content.ReadAsStringAsync().Result;

            Assert.That(HttpStatusCode.BadRequest, Is.EqualTo(response.StatusCode));
            Assert.That(responseMessage, Does.StartWith("Username").IgnoreCase);
            Assert.That(responseMessage, Does.EndWith("already exists").IgnoreCase);
        }
Ejemplo n.º 5
0
        public async Task Register_CreateUsers_ReturnsNotEmptyGUID()
        {
            var registrationDTO = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "NotEmptyGui",
                LastName       = "NotEmptyGui",
                Password       = "******",
                InitialBalance = 10
            };
            var responseMessage = await CreateUser(registrationDTO);

            var resultID = await responseMessage.Content.ReadAsAsync <Guid>();

            var isValid = resultID == Guid.Empty ? false : true;

            Assert.True(isValid);
        }
Ejemplo n.º 6
0
        public async Task User_AccessUserWithoutAuthentication_ReturnsUnauthorized()
        {
            InvalidaAuthentication();
            var registrationDTO = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "sample",
                LastName       = "sample",
                Password       = "******",
                InitialBalance = 10
            };
            var responseMessage = await CreateUser(registrationDTO);

            var resultID = await responseMessage.Content.ReadAsAsync <Guid>();

            var response = await GetUser(resultID);

            Assert.That(HttpStatusCode.Unauthorized, Is.EqualTo(response.StatusCode));
        }
        public async Task <IActionResult> Register(userForRegisterDTO registerUser)
        {
            if (registerUser.InitialBalance == null)
            {
                registerUser.InitialBalance = 0;
            }

            registerUser.Username = registerUser.Username.ToLower();
            if (await _services.isExistingUser(registerUser.Username))
            {
                return(BadRequest("Username '" + registerUser.Username + "' already exists"));
            }

            var newUser = new User();

            newUser = registerUser;

            var createdNewUser = await _services.Register(newUser, registerUser.Password);

            return(Ok(createdNewUser.Id));
        }
        private async Task <string> GetJwtAsync()
        {
            var newUser = new userForRegisterDTO
            {
                Username       = "******",
                FirstName      = "sample",
                LastName       = "sample",
                Password       = "******",
                InitialBalance = 10
            };
            var newUserRegistered = await CreateUser(newUser);

            var userLogin = new userForLoginDTO
            {
                Username = "******",
                Password = "******"
            };
            var responseToken = await Login(userLogin);

            var token = responseToken.Content.ReadAsStringAsync().Result;

            return(token);
        }
Ejemplo n.º 9
0
        public async Task TransferMoney_TransferToSameSourceAccountID_ReturnsCannotTransferToSameAccount()
        {
            //Arrange
            var expectedResult = "You cannot transfer money to same account";
            var sourceUser     = new userForRegisterDTO()
            {
                Username       = "******",
                FirstName      = "sourceuser2",
                LastName       = "sourceuser2",
                Password       = "******",
                InitialBalance = 10
            };

            var sourceUserCreated = await CreateUser(sourceUser);

            var sourceUserID = await sourceUserCreated.Content.ReadAsAsync <Guid>();

            //await AuthenticateAsync();


            //Act
            var transferMoney = new transferMoneyDTO()
            {
                SourceAccountID      = sourceUserID,
                DestinationAccountID = sourceUserID,
                Amount = 10
            };
            var result = await TransferMoney(transferMoney);

            string responseMessage = result.Content.ReadAsStringAsync().Result;

            // Assert
            //result.Should().BeOfType<BadRequestResult>();
            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
            Assert.That(expectedResult, Is.EqualTo(responseMessage));
        }
 protected async Task <HttpResponseMessage> CreateUser(userForRegisterDTO userRegistration)
 {
     return(await TestClient.PostAsJsonAsync(ApiRoutes.Auth.Register, userRegistration));
 }