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>()); }
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>()); }
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")); }
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>()); }