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