public async Task <IActionResult> CreateOrEditAddress(CreateOrEditAddressViewModel input) { string userEmail = _httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); var result = await _userApplicationService.CreateOrEditAddress(userEmail, input); return(Ok(result)); }
public async Task IShouldCanCreateOrUpdateAUserAddress() { string email = "*****@*****.**"; var user = new User { Email = email, Id = "jkl34lk435-klj2342" }; var viewModel = new CreateOrEditAddressViewModel { City = "SP" }; var address = new Address { City = "SP" }; var mockForDomainService = new Mock <IUserService>(); mockForDomainService.Setup(service => service.GetUserByEmail(It.IsAny <string>())) .ReturnsAsync(user) .Verifiable(); mockForDomainService.Setup(service => service.CreateOrEditAddress(It.IsAny <User>(), It.IsAny <Address>())) .Returns(user) .Verifiable(); var mockForMapper = new Mock <IMapper>(); mockForMapper.Setup(m => m.Map <Address>(It.IsAny <CreateOrEditAddressViewModel>())) .Returns(address) .Verifiable(); mockForMapper.Setup(m => m.Map <CreateOrEditAddressViewModel>(It.IsAny <Address>())) .Returns(viewModel) .Verifiable(); var service = new UserApplicationService(mockForMapper.Object, mockForDomainService.Object); var result = await service.CreateOrEditAddress(email, viewModel); Assert.AreEqual(viewModel, result); mockForDomainService.VerifyAll(); mockForMapper.VerifyAll(); }
public async Task <CreateOrEditAddressViewModel> CreateOrEditAddress(string userEmail, CreateOrEditAddressViewModel viewModel) { var user = await _userService.GetUserByEmail(userEmail); var address = _mapper.Map <Address>(viewModel); var result = _userService.CreateOrEditAddress(user, address); return(_mapper.Map <CreateOrEditAddressViewModel>(result.Address)); }