Example #1
0
        public void Can_Create_Parsable_String_From_Metric_Details()
        {
            var metric = new Metric("device", "category", "name", "suffix");

            const string expectedResult = "(device|category|name|suffix)";
            var actualResult = metric.ToParsableString();

            Assert.AreEqual(expectedResult, actualResult);
        }
Example #2
0
        public void Query_Allows_Multiple_Metrics_Passed_In()
        {
            var metric1 = new Metric("device", "category", "name", "suffix");
            var metric2 = new Metric("device2", "category2", "name2", "suffix2");

            var path = "/metrics/query";
            var response = _browser.Get(path, with =>
            {
                with.HttpRequest();
                with.Query("metric", metric1.ToParsableString());
                with.Query("metric", metric2.ToParsableString());
            });

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode, "Incorrect status code returned");
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.Metrics != null)), Times.Once());
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.Metrics.Length == 2)), Times.Once());
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.Metrics.Contains(metric1))), Times.Once());
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.Metrics.Contains(metric2))), Times.Once());
        }
Example #3
0
        public void Query_Builds_Correct_Query_From_Parameters()
        {
            var metric = new Metric("device", "category", "name", "suffix");
            var path = "/metrics/query";
            var startDate = DateTime.Now;
            var endDate = DateTime.Now.AddMinutes(10);

            // Set dates to their parsed dates to make sure they are equal to how they will
            // be read by the query string
            startDate = DateTime.Parse(startDate.ToString());
            endDate = DateTime.Parse(endDate.ToString());

            var response = _browser.Get(path, with =>
            {
                with.HttpRequest();
                with.Query("start", startDate.ToString());
                with.Query("end", endDate.ToString());
                with.Query("metric", metric.ToParsableString());
            });

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode, "Incorrect status code returned");
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.StartDate == startDate)), Times.Once());
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.EndDate == endDate)), Times.Once());
            _storageEngine.Verify(x => x.ExecuteQuery(It.Is<Query>(y => y.Metrics.Contains(metric))), Times.Once());
        }