Exemplo n.º 1
0
        public async Task CreateTransactionAsync_ReturnsOkObjectResult()
        {
            // Arrange
            _httpContextAccessorMock
            .Setup(hca => hca.HttpContext)
            .Returns(HttpContextStubs.HttpContextWithUser);

            var transactionInfo = new TransactionInfo();

            _transactionT2Service
            .Setup(tt2s => tt2s.CreateTransactionAsync(
                       It.IsAny <TransactionCreationRequest>(),
                       It.IsAny <decimal>(),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(transactionInfo);

            var transactionCreationRequestViewModel = new TransactionCreationRequestViewModel()
            {
                HouseId = "000000000000000000000000"
            };

            // Act
            var result = await _transactionT3Service.CreateTransactionAsync(transactionCreationRequestViewModel);

            // Assert
            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            Assert.IsInstanceOfType(result.Value, typeof(TransactionInfoViewModel));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreateTransactionAsync(
            [FromRoute] string houseId,
            [FromBody] TransactionCreationRequestViewModel transactionCreationRequestViewModel,
            CancellationToken cancellationToken = default)
        {
            if (!string.Equals(houseId, transactionCreationRequestViewModel.HouseId))
            {
                ModelState.AddModelError(nameof(transactionCreationRequestViewModel.HouseId), "Missmatching house id in request url and body");
            }

            if (!ModelState.IsValid)
            {
                var badResult = new BadRequestObjectResult(ModelState);
                return(badResult);
            }

            var result = await _transactionT3Service.CreateTransactionAsync(transactionCreationRequestViewModel, cancellationToken);

            return(result);
        }
Exemplo n.º 3
0
        public async Task <ObjectResult> CreateTransactionAsync(
            TransactionCreationRequestViewModel transactionCreationRequestViewModel,
            CancellationToken cancellationToken = default)
        {
            TransactionCreationRequest transactionCreationRequest;

            try
            {
                transactionCreationRequest = _mapper.Map <TransactionCreationRequest>(transactionCreationRequestViewModel);
            }
            catch (AutoMapperMappingException e)
            {
                if (!string.Equals(e.MemberMap.DestinationName, nameof(TransactionCreationRequest.HouseId)))
                {
                    throw;
                }

                var modelState = new ModelStateDictionary();
                modelState.AddModelError(nameof(TransactionCreationRequestViewModel.HouseId), "Invalid format");

                var badResult = new BadRequestObjectResult(modelState);
                return(badResult);
            }

            var userFromIdentity = GetUserFromIdentity();

            transactionCreationRequest.CreatedBy = userFromIdentity.GoogleId;

            var transactionInfo = await _transactionT2Service.CreateTransactionAsync(
                transactionCreationRequest,
                userFromIdentity.GoogleId,
                cancellationToken);

            var transactionInfoViewModel = _mapper.Map <TransactionInfoViewModel>(transactionInfo);

            var result = new OkObjectResult(transactionInfoViewModel);

            return(result);
        }