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