コード例 #1
0
        public void TestNumberReader()
        {
            var reader = ColumnReaders.NumberReader("foo");
            var m      = new ParsedMetrics(new LabelDict("env"));

            reader(m, "1");
            Assert.That(m.Metrics, Has.Exactly(1).Items);
            Assert.That(m.Metrics, Contains.Key("foo"));
            Assert.That(m.Metrics, Contains.Value(1.0));
            Assert.That(m.Labels.Count, Is.EqualTo(0));

            reader(m, "2.0");
            Assert.That(m.Metrics, Has.Exactly(1).Items);
            Assert.That(m.Metrics, Contains.Key("foo"));
            Assert.That(m.Metrics, Contains.Value(2.0));
            Assert.That(m.Labels.Count, Is.EqualTo(0));

            reader(m, "2.0e1");
            Assert.That(m.Metrics, Has.Exactly(1).Items);
            Assert.That(m.Metrics, Contains.Key("foo"));
            Assert.That(m.Metrics, Contains.Value(20.0));
            Assert.That(m.Labels.Count, Is.EqualTo(0));

            Assert.That(() => reader(m, ""), Throws.TypeOf <ParserError>());
            Assert.That(() => reader(m, "nope"), Throws.TypeOf <ParserError>());
        }
コード例 #2
0
 public void TestCreate()
 {
     Assert.That(() => ColumnReaders.Create("number", "bla"), Throws.Nothing);
     Assert.That(() => ColumnReaders.Create("clf_number", "bla"), Throws.Nothing);
     Assert.That(() => ColumnReaders.Create("request_header", "bla"), Throws.Nothing);
     Assert.That(() => ColumnReaders.Create("label", "bla"), Throws.Nothing);
     Assert.That(() => ColumnReaders.Create("xxx", "bla"), Throws.TypeOf <ArgumentOutOfRangeException>());
 }
コード例 #3
0
        public void TestLabelReader()
        {
            var reader = ColumnReaders.LabelReader("foo");
            var m      = new ParsedMetrics(new LabelDict("env"));

            reader(m, "bar");
            Assert.That(m.Metrics, Is.Empty);
            Assert.That(m.Labels.Count, Is.EqualTo(1));
            Assert.That(m.Labels.Get("foo"), Is.EqualTo("bar"));
        }
コード例 #4
0
        public void TestRequestHeaderReader()
        {
            var reader = ColumnReaders.RequestHeaderReader();
            var m      = new ParsedMetrics(new LabelDict("env"));

            reader(m, "POST /uri HTTP/1.1");
            Assert.That(m.Metrics, Is.Empty);
            Assert.That(m.Labels.Count, Is.EqualTo(3));
            Assert.That(m.Labels.Get(ColumnReaders.RequestMethod), Is.EqualTo("POST"));
            Assert.That(m.Labels.Get(ColumnReaders.RequestUri), Is.EqualTo("/uri"));
            Assert.That(m.Labels.Get(ColumnReaders.RequestHttpVersion), Is.EqualTo("HTTP/1.1"));

            reader(m, "GET /res?foo=bar HTTP/1.0");
            Assert.That(m.Metrics, Is.Empty);
            Assert.That(m.Labels.Count, Is.EqualTo(3));
            Assert.That(m.Labels.Get(ColumnReaders.RequestMethod), Is.EqualTo("GET"));
            Assert.That(m.Labels.Get(ColumnReaders.RequestUri), Is.EqualTo("/res"));
            Assert.That(m.Labels.Get(ColumnReaders.RequestHttpVersion), Is.EqualTo("HTTP/1.0"));

            Assert.That(() => reader(m, "a"), Throws.TypeOf <ParserError>());
            Assert.That(() => reader(m, "a b"), Throws.TypeOf <ParserError>());
            Assert.That(() => reader(m, "a b c"), Throws.Nothing);
            Assert.That(() => reader(m, "a b c d"), Throws.TypeOf <ParserError>());
        }