Remove implicit conversions

Implicit conversions are something that nlohmann library itself is a bad
default, and 3 years ago threatened to change the default.  These
implicit conversions cause a number of crashes that are hard to
reproduce, because they throw an uncaught exception.

Update the code to be able to do no more implicit conversions.

Tested: Entity-manager launches and runs.  Items are detected correctly
and show up on dbus.  Unit tests pass.

Change-Id: Ib23159ae58f5584641427d9be7545bc25a3619af
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/test/entity_manager/test_entity-manager.cpp b/test/entity_manager/test_entity-manager.cpp
index cc59e44..397861d 100644
--- a/test/entity_manager/test_entity-manager.cpp
+++ b/test/entity_manager/test_entity-manager.cpp
@@ -13,11 +13,10 @@
 TEST(TemplateCharReplace, replaceOneInt)
 {
     nlohmann::json j = {{"foo", "$bus"}};
-    auto it = j.begin();
     DBusInterface data;
     data["BUS"] = 23;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = 23;
     EXPECT_EQ(expected, j["foo"]);
@@ -26,11 +25,10 @@
 TEST(TemplateCharReplace, replaceOneStr)
 {
     nlohmann::json j = {{"foo", "$TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = std::string("Test");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "Test";
     EXPECT_EQ(expected, j["foo"]);
@@ -39,11 +37,10 @@
 TEST(TemplateCharReplace, replaceSecondStr)
 {
     nlohmann::json j = {{"foo", "the $TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = std::string("Test");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "the Test";
     EXPECT_EQ(expected, j["foo"]);
@@ -52,11 +49,10 @@
 TEST(TemplateCharReplace, replaceMiddleStr)
 {
     nlohmann::json j = {{"foo", "the $TEST worked"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = std::string("Test");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "the Test worked";
     EXPECT_EQ(expected, j["foo"]);
@@ -65,11 +61,10 @@
 TEST(TemplateCharReplace, replaceLastStr)
 {
     nlohmann::json j = {{"foo", "the Test $TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 23;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "the Test 23";
     EXPECT_EQ(expected, j["foo"]);
@@ -78,11 +73,10 @@
 TEST(TemplateCharReplace, increment)
 {
     nlohmann::json j = {{"foo", "3 plus 1 equals $TEST + 1"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 plus 1 equals 4";
     EXPECT_EQ(expected, j["foo"]);
@@ -91,11 +85,10 @@
 TEST(TemplateCharReplace, decrement)
 {
     nlohmann::json j = {{"foo", "3 minus 1 equals $TEST - 1 !"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 minus 1 equals 2 !";
     EXPECT_EQ(expected, j["foo"]);
@@ -104,11 +97,10 @@
 TEST(TemplateCharReplace, modulus)
 {
     nlohmann::json j = {{"foo", "3 mod 2 equals $TEST % 2"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 mod 2 equals 1";
     EXPECT_EQ(expected, j["foo"]);
@@ -117,11 +109,10 @@
 TEST(TemplateCharReplace, multiply)
 {
     nlohmann::json j = {{"foo", "3 * 2 equals $TEST * 2"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 * 2 equals 6";
     EXPECT_EQ(expected, j["foo"]);
@@ -130,11 +121,10 @@
 TEST(TemplateCharReplace, divide)
 {
     nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 4;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 / 2 equals 2";
     EXPECT_EQ(expected, j["foo"]);
@@ -143,11 +133,10 @@
 TEST(TemplateCharReplace, multiMath)
 {
     nlohmann::json j = {{"foo", "4 * 2 % 6 equals $TEST * 2 % 6"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 4;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 * 2 % 6 equals 2";
     EXPECT_EQ(expected, j["foo"]);
@@ -156,12 +145,11 @@
 TEST(TemplateCharReplace, twoReplacements)
 {
     nlohmann::json j = {{"foo", "$FOO $BAR"}};
-    auto it = j.begin();
     DBusInterface data;
     data["FOO"] = std::string("foo");
     data["BAR"] = std::string("bar");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "foo bar";
     EXPECT_EQ(expected, j["foo"]);
@@ -170,12 +158,11 @@
 TEST(TemplateCharReplace, twoReplacementsWithMath)
 {
     nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2 $BAR"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 4;
     data["BAR"] = std::string("bar");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 / 2 equals 2 bar";
 }
@@ -183,12 +170,11 @@
 TEST(TemplateCharReplace, twoReplacementsWithMath2)
 {
     nlohmann::json j = {{"foo", "4 / 2 equals $ADDRESS / 2 $BAR"}};
-    auto it = j.begin();
     DBusInterface data;
     data["ADDRESS"] = 4;
     data["BAR"] = std::string("bar");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 / 2 equals 2 bar";
     EXPECT_EQ(expected, j["foo"]);
@@ -206,7 +192,7 @@
 
     for (auto it = j.begin(); it != j.end(); it++)
     {
-        em_utils::templateCharReplace(it, data, 0);
+        em_utils::templateCharReplace(j, data, 0);
     }
     nlohmann::json expected = {{"Address", 84},
                                {"Bus", 15},
@@ -218,11 +204,10 @@
 TEST(TemplateCharReplace, replaceSecondAsInt)
 {
     nlohmann::json j = {{"foo", "twelve is $TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["test"] = 12;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "twelve is 12";
     EXPECT_EQ(expected, j["foo"]);
@@ -231,10 +216,9 @@
 TEST(TemplateCharReplace, singleHex)
 {
     nlohmann::json j = {{"foo", "0x54"}};
-    auto it = j.begin();
     DBusInterface data;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = 84;
     EXPECT_EQ(expected, j["foo"]);
@@ -243,7 +227,6 @@
 TEST(TemplateCharReplace, leftOverTemplateVars)
 {
     nlohmann::json j = {{"foo", "$EXISTENT_VAR and $NON_EXISTENT_VAR"}};
-    auto it = j.begin();
 
     DBusInterface data;
     data["EXISTENT_VAR"] = std::string("Replaced");
@@ -251,7 +234,7 @@
     DBusObject object;
     object["PATH"] = data;
 
-    em_utils::templateCharReplace(it, object, 0);
+    em_utils::templateCharReplace(j, object, 0);
 
     nlohmann::json expected = "Replaced and ";
     EXPECT_EQ(expected, j["foo"]);
@@ -260,9 +243,8 @@
 TEST(HandleLeftOverTemplateVars, replaceLeftOverTemplateVar)
 {
     nlohmann::json j = {{"foo", "the Test $TEST is $TESTED"}};
-    auto it = j.begin();
 
-    em_utils::handleLeftOverTemplateVars(it);
+    em_utils::handleLeftOverTemplateVars(j);
 
     nlohmann::json expected = "the Test  is ";
     EXPECT_EQ(expected, j["foo"]);