]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#891,!592] updated unit tests
authorRazvan Becheriu <razvan@isc.org>
Fri, 15 Nov 2019 19:38:08 +0000 (21:38 +0200)
committerRazvan Becheriu <razvan@isc.org>
Wed, 5 Feb 2020 19:57:37 +0000 (21:57 +0200)
src/lib/stats/tests/context_unittest.cc

index 0d6320dd214a16bf08276e1e34d1a34e3a323168..938b5b58c890eec0eaa0c2c70ed3521026aa435c 100644 (file)
@@ -8,8 +8,11 @@
 
 #include <stats/context.h>
 #include <gtest/gtest.h>
+#include <string>
 
+using namespace isc::data;
 using namespace isc::stats;
+using namespace std;
 
 // Basic test that checks get, add, del methods
 TEST(ContextTest, basic) {
@@ -19,6 +22,10 @@ TEST(ContextTest, basic) {
     ObservationPtr a(new Observation("alpha", 1.11));
     ObservationPtr b(new Observation("beta", 2.22));
     ObservationPtr c(new Observation("gamma", 3.33));
+    string expected_a = a->getJSON()->str();
+    string expected_b = b->getJSON()->str();
+    string expected_c = c->getJSON()->str();
+
 
     // Context where we will store the observations.
     StatContext ctx;
@@ -43,15 +50,15 @@ TEST(ContextTest, basic) {
     ObservationPtr from_ctx;
     EXPECT_NO_THROW(from_ctx = ctx.get("alpha"));
     ASSERT_TRUE(from_ctx);
-    EXPECT_EQ(a->getJSON()->str(), from_ctx->getJSON()->str());
+    EXPECT_EQ(expected_a, from_ctx->getJSON()->str());
 
     EXPECT_NO_THROW(from_ctx = ctx.get("beta"));
     ASSERT_TRUE(from_ctx);
-    EXPECT_EQ(b->getJSON()->str(), from_ctx->getJSON()->str());
+    EXPECT_EQ(expected_b, from_ctx->getJSON()->str());
 
     EXPECT_NO_THROW(from_ctx = ctx.get("gamma"));
     ASSERT_TRUE(from_ctx);
-    EXPECT_EQ(c->getJSON()->str(), from_ctx->getJSON()->str());
+    EXPECT_EQ(expected_c, from_ctx->getJSON()->str());
 
     // Let's try to retrieve non-existing stat
     EXPECT_NO_THROW(from_ctx = ctx.get("delta"));
@@ -65,5 +72,31 @@ TEST(ContextTest, basic) {
 
     // Attempt to delete non-existing stat should fail.
     EXPECT_FALSE(ctx.del("beta"));
+
+    ConstElementPtr result;
+    EXPECT_NO_THROW(result = ctx.getAll());
+
+    ASSERT_TRUE(result);
+    ElementPtr expected_result = Element::createMap();
+    expected_result->set("alpha", a->getJSON());
+    expected_result->set("gamma", c->getJSON());
+    EXPECT_EQ(result->str(), expected_result->str());
+
+    // Reset all statistics.
+    EXPECT_NO_THROW(ctx.reset());
+
+    EXPECT_NO_THROW(from_ctx = ctx.get("alpha"));
+    ASSERT_TRUE(from_ctx);
+    EXPECT_NE(expected_a, from_ctx->getJSON()->str());
+    EXPECT_EQ(0.0, a->getFloat().first);
+
+    EXPECT_NO_THROW(from_ctx = ctx.get("gamma"));
+    ASSERT_TRUE(from_ctx);
+    EXPECT_NE(expected_c, from_ctx->getJSON()->str());
+    EXPECT_EQ(0.0, c->getFloat().first);
+
+    // Clear all statistics.
+    EXPECT_NO_THROW(ctx.clear());
+    EXPECT_EQ(0, ctx.size());
 }