private static async Task GetStockSymbolStatisticsAsync(PriceType[] priceTypes, StockSymbolStatistics[] expected, DateTime mostRecentDate) { Mock <ICsvReader> csvReaderMock = new Mock <ICsvReader>(); Mock <IStockSymbolsRepository> stockSymbolsRepositoryMock = new Mock <IStockSymbolsRepository>(); StockSymbol[] stockSymbols = { new StockSymbol { Name = SymbolName, Date = mostRecentDate, Open = 40, Close = 60, High = 65, Low = 44 } }; DateTime?from = mostRecentDate.AddDays(-10); DateTime?to = mostRecentDate.AddDays(1); stockSymbolsRepositoryMock.Setup(r => r.GetByUserAndSymbolAsync(User, SymbolName, from, to)).ReturnsAsync(stockSymbols); StockSymbolsService stockSymbolsService = new StockSymbolsService(csvReaderMock.Object, stockSymbolsRepositoryMock.Object); StockSymbolStatistics[] result = (await stockSymbolsService.GetStockSymbolStatisticsAsync(User, SymbolName, priceTypes, from, to)).ToArray(); Assert.AreEqual(expected.Length, result.Length); Assert.AreEqual(expected[0].Name, result[0].Name); Assert.AreEqual(expected[0].Date, result[0].Date); Assert.AreEqual(expected[0].Avg, result[0].Avg); Assert.AreEqual(expected[0].Min, result[0].Min); Assert.AreEqual(expected[0].Max, result[0].Max); Assert.AreEqual(expected[0].Median, result[0].Median); Assert.AreEqual(expected[0].Percentile95, result[0].Percentile95); Assert.AreEqual(expected[0].Open, result[0].Open); Assert.AreEqual(expected[0].Close, result[0].Close); Assert.AreEqual(expected[0].High, result[0].High); Assert.AreEqual(expected[0].Low, result[0].Low); }
public async Task UploadInvalidAsyncTest() { Mock <ICsvReader> csvReaderMock = new Mock <ICsvReader>(); Mock <IStockSymbolsRepository> stockSymbolsRepositoryMock = new Mock <IStockSymbolsRepository>(); DateTime mostRecentDate = DateTime.UtcNow; stockSymbolsRepositoryMock.Setup(r => r.GetByUserAndSymbolAsync(User, SymbolName, null, null)) .ReturnsAsync(new List <StockSymbol>()); StockSymbol[] stockSymbols = GetStockSymbols(mostRecentDate); List <ValidationResult> validationResults = new List <ValidationResult> { new ValidationResult(0, "Incorrect Name.") }; csvReaderMock.Setup(r => r.ReadStockSymbols(User, SymbolName, It.IsAny <Stream>())).Returns( new ValidationResponse <IEnumerable <StockSymbol> >( stockSymbols, validationResults)); ValidationResponse expectedResponse = new ValidationResponse(validationResults); StockSymbolsService stockSymbolsService = new StockSymbolsService(csvReaderMock.Object, stockSymbolsRepositoryMock.Object); using (Stream stream = new MemoryStream()) { ValidationResponse result = await stockSymbolsService.UploadAsync(User, SymbolName, stream); stockSymbolsRepositoryMock.Verify(r => r.AddRangeAsync(stockSymbols), Times.Never); Assert.AreEqual(expectedResponse.IsValid, result.IsValid); Assert.AreEqual(expectedResponse.ValidationResults.First().Message, result.ValidationResults.First().Message); } }
public async Task GetStocksAsyncTest() { Mock <ICsvReader> csvReaderMock = new Mock <ICsvReader>(); Mock <IStockSymbolsRepository> stockSymbolsRepositoryMock = new Mock <IStockSymbolsRepository>(); DateTime mostRecentDate = DateTime.UtcNow; StockSymbol[] stockSymbols = GetStockSymbols(mostRecentDate); stockSymbolsRepositoryMock.Setup(r => r.GetByUserAsync(User)).ReturnsAsync(stockSymbols); StockSymbolsService stockSymbolsService = new StockSymbolsService(csvReaderMock.Object, stockSymbolsRepositoryMock.Object); StockSymbolInfo[] expected = { new StockSymbolInfo(SymbolName, mostRecentDate) }; StockSymbolInfo[] result = (await stockSymbolsService.GetStocksAsync(User)).ToArray(); Assert.AreEqual(expected.Length, result.Length); Assert.AreEqual(expected[0].Name, result[0].Name); Assert.AreEqual(expected[0].MostRecentDate, result[0].MostRecentDate); }