public async Task <IActionResult> RegisterAsync([FromBody] CardRegistrationDto dto) { // check if card is already registered IdentityUser savedCard = await _cardManager.FindByIdAsync(dto.CardNumber); if (savedCard != null) { return(BadRequest("Card already registered")); } // check model is valid if (!ModelState.IsValid) { return(BadRequest(ModelState.Values)); } // use auto mapper to create IdentityCard from the dto var card = _mapper.Map <IdentityCard>(dto); IdentityResult identityResult = await _cardManager.CreateAsync(card, dto.Pin); if (identityResult.Succeeded) { return(Ok("Registered successfully")); } return(BadRequest(identityResult.Errors)); }
public async Task Post_register_badRequest() { // Arrange var client = _factory.CreateClient(); var dto = new CardRegistrationDto() { CardNumber = "123434s6789odiuy", EmployeeId = "123456", FirstName = "test", LastName = "rodeo", PhoneNumber = "07945832712", Email = "*****@*****.**", Pin = "5678" }; var json = JsonConvert.SerializeObject(dto); var buffer = System.Text.Encoding.UTF8.GetBytes(json); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); await client.PostAsync("/authentication/register", byteContent); // Act var response = await client.PostAsync("/authentication/register", byteContent); // Assert Assert.True(response.StatusCode == HttpStatusCode.BadRequest); }
public async Task UserRegisters_WithValidDetails_RegisteresUserAndReturnsRegisteredSuccessfully() { // Arrange var subject = GetSubject(); IdentityCard identityCard = _identityCardBuilder.GenericIdentityCard().Build(); CardRegistrationDto cardRegistrationDto = _cardRegistrationDtoBuilder.GenericRegistration().Build(); identityCard.Id = cardRegistrationDto.CardNumber; _mockMapper.Setup(x => x.Map <IdentityCard>(cardRegistrationDto)).Returns(identityCard); var identityResult = new IdentityResultAccessor(true); _mockCardManager.Setup(x => x.CreateAsync(identityCard, cardRegistrationDto.Pin)) .ReturnsAsync(identityResult); _mockCardManager.SetupSequence(x => x.FindByIdAsync(identityCard.Id)) .ReturnsAsync((IdentityCard)null) .ReturnsAsync(identityCard); _mockCardManager.SetupSequence(x => x.FindByIdAsync(identityCard.Id)) .ReturnsAsync((IdentityCard)null) .ReturnsAsync(identityCard); // Act var result = await subject.RegisterAsync(cardRegistrationDto); // Assert Assert.NotNull(result); Assert.Equal(typeof(OkObjectResult), result.GetType()); Assert.Equal(typeof(string), ((OkObjectResult)result).Value.GetType()); }
public async Task Post_login_ok() { // Arrange var client = _factory.CreateClient(); // register var registerDto = new CardRegistrationDto() { CardNumber = "123be4qs6ou9oiuy", EmployeeId = "127856", FirstName = "test", LastName = "rodeo", PhoneNumber = "07945832712", Email = "*****@*****.**", Pin = "5678" }; var registerJson = JsonConvert.SerializeObject(registerDto); var registerBuffer = System.Text.Encoding.UTF8.GetBytes(registerJson); var registerByteContent = new ByteArrayContent(registerBuffer); registerByteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var registerResult = client.PostAsync("/authentication/register", registerByteContent).Result; // login card var loginDto = new LoginParametersDto() { CardNumber = registerDto.CardNumber, Pin = registerDto.Pin }; var loginJson = JsonConvert.SerializeObject(loginDto); var loginBuffer = System.Text.Encoding.UTF8.GetBytes(loginJson); var loginByteContent = new ByteArrayContent(loginBuffer); loginByteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); if (registerResult.IsSuccessStatusCode) { // Act var response = client.PostAsync("/authentication/login", loginByteContent).Result; // Assert Assert.True(response.StatusCode == HttpStatusCode.OK); } else { Assert.True(registerResult.IsSuccessStatusCode); } }