public void ChangeDividendRules() { var mockRepository = new MockRepository(MockBehavior.Strict); var id = Guid.NewGuid(); var stock = new Stock(id); stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest); var stockCache = new EntityCache <Stock>(); stockCache.Add(stock); var stockQuery = new StockQuery(stockCache); var stockRepository = mockRepository.Create <IRepository <Stock> >(); stockRepository.Setup(x => x.Update(stock)).Verifiable(); var stockPriceHistoryCache = mockRepository.Create <IEntityCache <StockPriceHistory> >(); var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >(); var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object); var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 0.50m, RoundingRule.Round, true, DrpMethod.Round); using (new AssertionScope()) { result.Should().HaveOkStatus(); var dividendRules = stock.DividendRules[new Date(2000, 01, 01)]; dividendRules.Should().BeEquivalentTo(new { CompanyTaxRate = 0.50m, DividendRoundingRule = RoundingRule.Round, DrpActive = true, DrpMethod = DrpMethod.Round }); } mockRepository.Verify(); }
public void ChangeDividendRulesStockNotActive() { var mockRepository = new MockRepository(MockBehavior.Strict); var id = Guid.NewGuid(); var stock = new Stock(id); stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest); stock.DeList(new Date(1999, 06, 30)); var stockCache = new EntityCache <Stock>(); stockCache.Add(stock); var stockQuery = new StockQuery(stockCache); var stockRepository = mockRepository.Create <IRepository <Stock> >(); var stockPriceHistoryCache = mockRepository.Create <IEntityCache <StockPriceHistory> >(); var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >(); var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object); var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 0.30m, RoundingRule.Round, true, DrpMethod.Round); result.Should().HaveErrorStatus().WithError("Stock is not active at 1/1/2000"); mockRepository.Verify(); }
public void ChangeDividendRulesTaxRateGreaterThan100Percent() { var mockRepository = new MockRepository(MockBehavior.Strict); var id = Guid.NewGuid(); var stock = new Stock(id); stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest); var stockCache = new EntityCache <Stock>(); stockCache.Add(stock); var stockQuery = new StockQuery(stockCache); var stockRepository = mockRepository.Create <IRepository <Stock> >(); var stockPriceHistoryCache = mockRepository.Create <IEntityCache <StockPriceHistory> >(); var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >(); var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object); var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 1.30m, RoundingRule.Round, true, DrpMethod.Round); result.Should().HaveErrorStatus().WithError("Company tax rate must be between 0 and 1"); mockRepository.Verify(); }
public void ChangeDividendRulesInvalidId() { var mockRepository = new MockRepository(MockBehavior.Strict); var id = Guid.NewGuid(); var stockCache = new EntityCache <Stock>(); var stockQuery = new StockQuery(stockCache); var stockRepository = mockRepository.Create <IRepository <Stock> >(); var stockPriceHistoryCache = mockRepository.Create <IEntityCache <StockPriceHistory> >(); var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >(); var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object); var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 0.30m, RoundingRule.Round, true, DrpMethod.Round); result.Should().HaveNotFoundStatus(); mockRepository.Verify(); }