public void DeserializeStockPriceResponse() { var serializer = new RestClientSerializer(); var id = Guid.NewGuid(); var json = "{\"id\":\"" + id + "\"," + "\"asxCode\":\"ABC\"," + "\"name\":\"ABC Pty Ltd\"," + "\"closingPrices\":[" + "{\"date\":\"2000-01-02\",\"price\":12.00}," + "{\"date\":\"2000-01-03\",\"price\":13.00}" + "]}"; var command = serializer.Deserialize <StockPriceResponse>(json); var expected = new StockPriceResponse() { Id = id, AsxCode = "ABC", Name = "ABC Pty Ltd" }; expected.AddClosingPrice(new Date(2000, 01, 02), 12.00m); expected.AddClosingPrice(new Date(2000, 01, 03), 13.00m); command.Should().BeEquivalentTo(expected); }
public static StockPriceResponse ToPriceResponse(this Stock stock, DateRange dateRange) { var stockProperties = stock.Properties.ClosestTo(dateRange.ToDate); var result = new StockPriceResponse() { Id = stock.Id, AsxCode = stockProperties.AsxCode, Name = stockProperties.Name }; foreach (var price in stock.GetPrices(dateRange)) { result.AddClosingPrice(price.Date, price.Price); } return(result); }