public async void ExtractTrades_Should_ReturnCorrectTrades() { using (var fs = new FileStream(TestConfig.PathToXmlFile, FileMode.Open)) { var trades = await this.sut.ExtractTrades(fs); var expectedTrade = new Trade { Date = new DateTime(2013, 5, 20), Open = 30.16m, High = 30.39m, Low = 30.02m, Close = 30.17m, Volume = 1478200 }; Assert.Equal(expectedTrade.Date, trades[0].Date); Assert.Equal(expectedTrade.Open, trades[0].Open); Assert.Equal(expectedTrade.High, trades[0].High); Assert.Equal(expectedTrade.Low, trades[0].Low); Assert.Equal(expectedTrade.Close, trades[0].Close); Assert.Equal(expectedTrade.Volume, trades[0].Volume); } }
/// <summary> /// The extract trade. /// </summary> /// <param name="line"> /// The line. /// </param> /// <returns> /// The <see cref="Trade"/>. /// </returns> protected virtual Trade ExtractTrade(string[] line) { var date = line[ColumnIndexes.Date].Split(new[] { "-" }, StringSplitOptions.RemoveEmptyEntries); var trade = new Trade { Date = new DateTime( Convert.ToInt32(date[0]), Convert.ToInt32(date[1]), Convert.ToInt32(date[2])), Open = Convert.ToDecimal(line[ColumnIndexes.Open]), High = Convert.ToDecimal(line[ColumnIndexes.High]), Low = Convert.ToDecimal(line[ColumnIndexes.Low]), Close = Convert.ToDecimal(line[ColumnIndexes.Close]), Volume = Convert.ToInt64(line[ColumnIndexes.Volume]) }; return trade; }