From 2f814f62192336f1c3edb41615ce1b77cba13a39 Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 11:14:33 -0400 Subject: [PATCH 1/5] Added GetModMetadata unit test --- test/kubernetes_unittest.cc | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index 6adbef21..5fb831b7 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -14,6 +14,13 @@ class KubernetesTest : public ::testing::Test { return reader.GetNodeMetadata(node, collected_at, is_deleted); } + MetadataUpdater::ResourceMetadata GetPodMetadata( + const KubernetesReader& reader, const json::Object* pod, + json::value associations, Timestamp collected_at, bool is_deleted) const + throw(json::Exception) { + return reader.GetPodMetadata(pod, std::move(associations), collected_at, is_deleted); + } + json::value ComputePodAssociations(const KubernetesReader& reader, const json::Object* pod) { return reader.ComputePodAssociations(pod); @@ -137,4 +144,58 @@ TEST_F(KubernetesTest, ComputePodAssociations) { ComputePodAssociations(reader, pod->As()); EXPECT_EQ(expected_associations->ToString(), associations->ToString()); } + +TEST_F(KubernetesTest, GetPodMetadata) { + Configuration config(std::stringstream( + "KubernetesClusterName: TestClusterName\n" + "KubernetesClusterLocation: TestClusterLocation\n" + "MetadataApiResourceTypePerarator: \",\"\n" + "MetadataIngestionRawContentVersion: TestVersion\n" + )); + Environment environment(config); + KubernetesReader reader(config, nullptr); // Don't need HealthChecker. + + const auto m = GetPodMetadata( + reader, json::object({ + {"metadata", json::object({ + {"namespace", json::string("TestNamespace")}, + {"name", json::string("TestName")}, + {"uid", json::string("TestUid")}, + {"creationTimestamp", json::string("2018-03-03T01:23:45.678901234Z")}, + })} + })->As(), + json::string("TestAssociations"), Timestamp(), false); + + EXPECT_EQ(std::vector( + {"k8s_pod.TestUid", "k8s_pod.TestNamespace.TestName"}), m.ids()); + EXPECT_EQ(MonitoredResource("k8s_pod", { + {"cluster_name", "TestClusterName"}, + {"pod_name", "TestName"}, + {"location", "TestClusterLocation"}, + {"namespace_name", "TestNamespace"}, + }), m.resource()); + EXPECT_EQ("TestVersion", m.metadata().version); + EXPECT_EQ(false, m.metadata().is_deleted); + EXPECT_EQ(time::rfc3339::FromString("2018-03-03T01:23:45.678901234Z"), + m.metadata().created_at); + EXPECT_EQ(Timestamp(), m.metadata().collected_at); + EXPECT_EQ(false, m.metadata().ignore); + EXPECT_EQ(json::object({ + {"blobs", json::object({ + {"api", json::object({ + {"raw", json::object({ + {"metadata", json::object({ + {"creationTimestamp", + json::string("2018-03-03T01:23:45.678901234Z")}, + {"name", json::string("TestName")}, + {"namespace", json::string("TestNamespace")}, + {"uid", json::string("TestUid")} + })}, + })}, + {"version", json::string("1.6")}, + })}, + {"association", json::string("TestAssociations")}, + })}, + })->ToString(), m.metadata().metadata->ToString()); +} } // namespace google From b568c5adc8089e40884b5b7b9317c40320b82ffb Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 13:16:07 -0400 Subject: [PATCH 2/5] Switched to using EXPECT_FALSE --- test/kubernetes_unittest.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index 5fb831b7..7cb9bd8e 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -59,7 +59,7 @@ TEST_F(KubernetesTest, GetNodeMetadata) { {"location", "TestClusterLocation"}, }), m.resource()); EXPECT_EQ("TestVersion", m.metadata().version); - EXPECT_EQ(false, m.metadata().is_deleted); + EXPECT_FALSE(m.metadata().is_deleted); EXPECT_EQ(time::rfc3339::FromString("2018-03-03T01:23:45.678901234Z"), m.metadata().created_at); EXPECT_EQ(Timestamp(), m.metadata().collected_at); @@ -175,11 +175,11 @@ TEST_F(KubernetesTest, GetPodMetadata) { {"namespace_name", "TestNamespace"}, }), m.resource()); EXPECT_EQ("TestVersion", m.metadata().version); - EXPECT_EQ(false, m.metadata().is_deleted); + EXPECT_FALSE(m.metadata().is_deleted); EXPECT_EQ(time::rfc3339::FromString("2018-03-03T01:23:45.678901234Z"), m.metadata().created_at); EXPECT_EQ(Timestamp(), m.metadata().collected_at); - EXPECT_EQ(false, m.metadata().ignore); + EXPECT_FALSE(m.metadata().ignore); EXPECT_EQ(json::object({ {"blobs", json::object({ {"api", json::object({ From 782e4283a778c4cc3ce3158768b64221c3b78d8e Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 14:27:39 -0400 Subject: [PATCH 3/5] Fixed line too long --- test/kubernetes_unittest.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index 7cb9bd8e..b0ea828d 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -18,7 +18,8 @@ class KubernetesTest : public ::testing::Test { const KubernetesReader& reader, const json::Object* pod, json::value associations, Timestamp collected_at, bool is_deleted) const throw(json::Exception) { - return reader.GetPodMetadata(pod, std::move(associations), collected_at, is_deleted); + return reader.GetPodMetadata( + pod, std::move(associations), collected_at, is_deleted); } json::value ComputePodAssociations(const KubernetesReader& reader, From 27673d0645aef8e0596f772281d93c6e2ad7f65d Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 15:15:22 -0400 Subject: [PATCH 4/5] Address code review comments --- test/kubernetes_unittest.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index b0ea828d..df3dc984 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -152,7 +152,7 @@ TEST_F(KubernetesTest, GetPodMetadata) { "KubernetesClusterLocation: TestClusterLocation\n" "MetadataApiResourceTypePerarator: \",\"\n" "MetadataIngestionRawContentVersion: TestVersion\n" - )); + )); Environment environment(config); KubernetesReader reader(config, nullptr); // Don't need HealthChecker. @@ -163,7 +163,7 @@ TEST_F(KubernetesTest, GetPodMetadata) { {"name", json::string("TestName")}, {"uid", json::string("TestUid")}, {"creationTimestamp", json::string("2018-03-03T01:23:45.678901234Z")}, - })} + })}, })->As(), json::string("TestAssociations"), Timestamp(), false); @@ -190,7 +190,7 @@ TEST_F(KubernetesTest, GetPodMetadata) { json::string("2018-03-03T01:23:45.678901234Z")}, {"name", json::string("TestName")}, {"namespace", json::string("TestNamespace")}, - {"uid", json::string("TestUid")} + {"uid", json::string("TestUid")}, })}, })}, {"version", json::string("1.6")}, From cb9a012fa2dad40aee9f1c980f8ad65e4798fe41 Mon Sep 17 00:00:00 2001 From: Andrew Emil Date: Mon, 2 Apr 2018 16:54:46 -0400 Subject: [PATCH 5/5] Factored out local variables --- test/kubernetes_unittest.cc | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/test/kubernetes_unittest.cc b/test/kubernetes_unittest.cc index df3dc984..58a45189 100644 --- a/test/kubernetes_unittest.cc +++ b/test/kubernetes_unittest.cc @@ -156,16 +156,17 @@ TEST_F(KubernetesTest, GetPodMetadata) { Environment environment(config); KubernetesReader reader(config, nullptr); // Don't need HealthChecker. - const auto m = GetPodMetadata( - reader, json::object({ - {"metadata", json::object({ - {"namespace", json::string("TestNamespace")}, - {"name", json::string("TestName")}, - {"uid", json::string("TestUid")}, - {"creationTimestamp", json::string("2018-03-03T01:23:45.678901234Z")}, - })}, - })->As(), - json::string("TestAssociations"), Timestamp(), false); + json::value pod = json::object({ + {"metadata", json::object({ + {"namespace", json::string("TestNamespace")}, + {"name", json::string("TestName")}, + {"uid", json::string("TestUid")}, + {"creationTimestamp", json::string("2018-03-03T01:23:45.678901234Z")}, + })}, + }); + const auto m = GetPodMetadata(reader, pod->As(), + json::string("TestAssociations"), Timestamp(), + false); EXPECT_EQ(std::vector( {"k8s_pod.TestUid", "k8s_pod.TestNamespace.TestName"}), m.ids()); @@ -181,7 +182,7 @@ TEST_F(KubernetesTest, GetPodMetadata) { m.metadata().created_at); EXPECT_EQ(Timestamp(), m.metadata().collected_at); EXPECT_FALSE(m.metadata().ignore); - EXPECT_EQ(json::object({ + json::value expected_metadata = json::object({ {"blobs", json::object({ {"api", json::object({ {"raw", json::object({ @@ -197,6 +198,7 @@ TEST_F(KubernetesTest, GetPodMetadata) { })}, {"association", json::string("TestAssociations")}, })}, - })->ToString(), m.metadata().metadata->ToString()); + }); + EXPECT_EQ(expected_metadata->ToString(), m.metadata().metadata->ToString()); } } // namespace google