Beispiel #1
0
        public IActionResult Put(int id, [FromBody] PutTradeParameter putTrade)
        {
            putTrade.Id = id;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var validator = new PutTradeValidator(Context, putTrade);
            var result    = validator.Validate();

            if (result.Any())
            {
                return(BadRequest(result));
            }

            var trade = Repo.Update(putTrade);

            if (trade == null)
            {
                return(NotFound());
            }
            return(Ok(trade));
        }
        public void TestUpdateAccountIdValidationError()
        {
            // arrange
            var context    = CreateDbContext();
            var controller = new TradesController(context);

            var trade = new PutTradeParameter
            {
                Id        = 2,
                AccountId = 1,
                Action    = TradeActions.Sell,
                Quantity  = 10,
                Symbol    = "GE"
            };

            // act
            var result    = controller.Put(2, trade);
            var brRequest = result as BadRequestObjectResult;
            var data      = (brRequest.Value as IEnumerable <ValidationResult>).ToArray();

            // assert
            Assert.IsNotNull(brRequest);
            Assert.AreEqual(400, brRequest.StatusCode);

            Assert.AreEqual("AccountId cannot be modified", data[0].ErrorMessage);
            Assert.AreEqual(2, trade.Id);
        }
Beispiel #3
0
 public PutTradeValidator(TradePMRDbContext context, PutTradeParameter trade)
 {
     this.context = context;
     this.trade   = trade;
 }