public void GetTable() { var doc = LoadDocument <IHtmlDocument>("Html", "ariva.historical.prices.DE0007664039.html"); var descriptor = new PathTableDescriptor(); descriptor.Figure = "HistoricalPrices"; descriptor.Path = @"/BODY[0]/DIV[0]/DIV[1]/DIV[6]/DIV[1]/DIV[0]/DIV[0]/TABLE[0]/TBODY[0]"; descriptor.Columns.Add(new FormatColumn("date", typeof(DateTime), "dd.MM.yy")); descriptor.Columns.Add(new FormatColumn("open", typeof(double), "00,00")); descriptor.Columns.Add(new FormatColumn("high", typeof(double), "00,00")); descriptor.Columns.Add(new FormatColumn("low", typeof(double), "00,00")); descriptor.Columns.Add(new FormatColumn("close", typeof(double), "00,00")); descriptor.SkipColumns.AddRange(5, 6); descriptor.SkipRows.AddRange(0, 23); var parser = DocumentProcessingFactory.CreateParser(doc, descriptor); var table = parser.ExtractTable(); Assert.That(table.Rows.Count, Is.EqualTo(22)); Assert.That(table.Rows[0][0], Is.EqualTo(new DateTime(2015, 12, 30))); Assert.That(table.Rows[0][1], Is.EqualTo(135.45d)); Assert.That(table.Rows[0][2], Is.EqualTo(135.45d)); Assert.That(table.Rows[0][3], Is.EqualTo(133.55d)); Assert.That(table.Rows[0][4], Is.EqualTo(133.75d)); Assert.That(table.Rows[21][0], Is.EqualTo(new DateTime(2015, 11, 27))); Assert.That(table.Rows[21][1], Is.EqualTo(124.50d)); Assert.That(table.Rows[21][2], Is.EqualTo(125.10d)); Assert.That(table.Rows[21][3], Is.EqualTo(121.05d)); Assert.That(table.Rows[21][4], Is.EqualTo(123.85d)); }
public void Path_Set_ValueIsSet() { var descriptor = new PathTableDescriptor(); descriptor.Path = "123"; Assert.That(descriptor.Path, Is.EqualTo("123")); }
public void Path_Set_ChangeIsNotified() { var descriptor = new PathTableDescriptor(); var counter = new PropertyChangedCounter(descriptor); descriptor.Path = "123"; Assert.That(counter.GetCount(nameof(descriptor.Path)), Is.EqualTo(1)); }
private static IHtmlMarker TryCreateMarker(PathTableDescriptor descriptor) { if (descriptor == null) { return(null); } return(new HtmlElementMarker(HtmlTableMarker.DefaultCellColor)); }
public void Validate_IsValid_DoesNotThrows() { var descriptor = new PathTableDescriptor(); descriptor.Figure = "Prices"; descriptor.Path = "123"; descriptor.Columns.Add(new FormatColumn("c1", typeof(double))); RecursiveValidator.Validate(descriptor); }
public void Clone_WhenCalled_AllMembersAreCloned() { var descriptor = new PathTableDescriptor(); descriptor.Columns.Add(new FormatColumn("c1", typeof(double))); var clone = FigureDescriptorFactory.Clone(descriptor); Assert.That(clone.Columns[0].Name, Is.EqualTo("c1")); }
public void Validate_InvalidPath_Throws([Values(null, "")] string path) { var descriptor = new PathTableDescriptor(); descriptor.Figure = "Prices"; descriptor.Path = path; descriptor.Columns.Add(new FormatColumn("c1", typeof(double))); var ex = Assert.Throws <ValidationException>(() => RecursiveValidator.Validate(descriptor)); Assert.That(ex.Message, Does.Contain("The Path field is required")); }