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));
        }
Exemplo n.º 2
0
        public void Path_Set_ValueIsSet()
        {
            var descriptor = new PathTableDescriptor();

            descriptor.Path = "123";

            Assert.That(descriptor.Path, Is.EqualTo("123"));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        private static IHtmlMarker TryCreateMarker(PathTableDescriptor descriptor)
        {
            if (descriptor == null)
            {
                return(null);
            }

            return(new HtmlElementMarker(HtmlTableMarker.DefaultCellColor));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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"));
        }
Exemplo n.º 7
0
        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"));
        }