public void Should_returnValidationException_Address()
 {
     var(_, exception) = new ModifyUserAddress(UserFakeMother.BuildUserWithAddress()).UpdateUserAddress(null);
     Assert.NotNull(exception);
     Assert.IsTrue(exception is ValidationException);
     Assert.AreEqual(new ValidationException("address").Message, exception.Message);
 }
 public void Should_returnNotFound_user_exception()
 {
     var(_, exception) = new ModifyUserAddress(null).UpdateUserAddress(null);
     Assert.NotNull(exception);
     Assert.IsTrue(exception is NotFoundException);
     Assert.AreEqual(new NotFoundException("User").Message, exception.Message);
 }
        public void Should_returnUser_with_address_modified()
        {
            var originalUser = UserFakeMother.BuildUserWithAddress();
            var newAddress   = AddressFakeMother.OkAddress();

            var(updatedUser, exception) = new ModifyUserAddress(originalUser).UpdateUserAddress(newAddress);
            Assert.NotNull(updatedUser);
            Assert.Null(exception);

            Assert.AreEqual(updatedUser.PrimaryAddress, newAddress);
        }
        public (bool ok, Exception exception) Exec(int userId, Address address)
        {
            var user = _getUserRepository.GetById(userId);

            var(userUpdated, exception) = new ModifyUserAddress(user).UpdateUserAddress(address);
            if (exception != null)
            {
                return(false, exception);
            }
            var(ok, repositoryException) = _updateUserAddressRepository.UpdateAddress(userUpdated);
            if (repositoryException != null)
            {
                return(false, repositoryException);
            }
            return(ok, null);
        }