public void DeserializeChangeDividendRulesCommand()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"changeDate\":\"2013-01-02\","
                       + "\"companyTaxRate\":0.30,"
                       + "\"dividendRoundingRule\":\"truncate\","
                       + "\"drpActive\":true,"
                       + "\"drpMethod\":\"roundDown\"}";

            var command = serializer.Deserialize <ChangeDividendRulesCommand>(json);

            var expected = new ChangeDividendRulesCommand()
            {
                Id                   = id,
                ChangeDate           = new Date(2013, 01, 02),
                CompanyTaxRate       = 0.30m,
                DividendRoundingRule = RoundingRule.Truncate,
                DrpActive            = true,
                DrpMethod            = DrpMethod.RoundDown
            };

            command.Should().BeEquivalentTo(expected);
        }
Пример #2
0
        public async Task ChangeDividendRules()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var stockId = Guid.NewGuid();

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.Setup(x => x.PostAsync <ChangeDividendRulesCommand>(
                                     It.Is <string>(x => x == "stocks/" + stockId + "/changedividendrules"),
                                     It.Is <ChangeDividendRulesCommand>(x => x.Id == stockId && x.CompanyTaxRate == 0.45m)))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var resource = new StockResource(messageHandler.Object);

            var change = new ChangeDividendRulesCommand()
            {
                Id             = stockId,
                CompanyTaxRate = 0.45m
            };
            await resource.ChangeDividendRules(change);

            mockRepository.Verify();
        }
Пример #3
0
        public ActionResult ChangeDividendRules([FromRoute] Guid id, [FromBody] ChangeDividendRulesCommand command)
        {
            // Check id in URL and id in command match
            if (id != command.Id)
            {
                return(BadRequest("Id in command doesn't match id on URL"));
            }

            var result = _StockService.ChangeDividendRules(id, command.ChangeDate, command.CompanyTaxRate, command.DividendRoundingRule, command.DrpActive, command.DrpMethod.ToDomain());

            return(result.ToActionResult());
        }
        public void ChangeDividendRulesValidationError()
        {
            var command = new ChangeDividendRulesCommand()
            {
                Id                   = _ValidationErrorId,
                ChangeDate           = new Date(2009, 01, 01),
                CompanyTaxRate       = 10.45m,
                DividendRoundingRule = RoundingRule.Truncate,
                DrpActive            = true,
                DrpMethod            = RestApi.Stocks.DrpMethod.RoundUp
            };
            var response = _Controller.ChangeDividendRules(_Stock.Id, command);

            response.Should().BeBadRequestObjectResult();
        }
        public void ChangeDividendRulesInvalidId()
        {
            var command = new ChangeDividendRulesCommand()
            {
                Id                   = _MissingStockId,
                ChangeDate           = new Date(2012, 01, 01),
                CompanyTaxRate       = 0.40m,
                DividendRoundingRule = RoundingRule.Truncate,
                DrpActive            = true,
                DrpMethod            = RestApi.Stocks.DrpMethod.RoundUp
            };
            var response = _Controller.ChangeDividendRules(_MissingStockId, command);

            response.Should().BeNotFoundResult();
        }
        public void ChangeDividendRules()
        {
            var command = new ChangeDividendRulesCommand()
            {
                Id                   = _Stock.Id,
                ChangeDate           = new Date(2009, 01, 01),
                CompanyTaxRate       = 0.40m,
                DividendRoundingRule = RoundingRule.Truncate,
                DrpActive            = true,
                DrpMethod            = RestApi.Stocks.DrpMethod.RoundUp
            };
            var response = _Controller.ChangeDividendRules(_Stock.Id, command);

            response.Should().BeOkResult();

            _StockServiceMock.Verify(x => x.ChangeDividendRules(_Stock.Id, new Date(2009, 01, 01), 0.40m, RoundingRule.Truncate, true, Domain.Stocks.DrpMethod.RoundUp));
        }
Пример #7
0
 public async Task ChangeDividendRules(ChangeDividendRulesCommand command)
 {
     await _MessageHandler.PostAsync <ChangeDividendRulesCommand>("stocks/" + command.Id.ToString() + "/changedividendrules", command);
 }