regulators: Add test cases for check_duplicate_object_id.

Add test cases for check_duplicate_object_id function in validate tool.
  *Invalid: test duplicate object ID in device and rail.
  *Invalid: test duplicate object ID in device and rule.
  *Invalid: test duplicate object ID in rule and rail.
Modify test case for comments property with multiple array elements.
  Add comments property with multiple array elements in test case Configuration.

Signed-off-by: Bob King <Bob_King@wistron.com>
Change-Id: I900083ed88617b227af138c880f1a3280d44ad47
diff --git a/phosphor-regulators/test/validate-regulators-config_tests.cpp b/phosphor-regulators/test/validate-regulators-config_tests.cpp
index 0bafa20..dac017f 100644
--- a/phosphor-regulators/test/validate-regulators-config_tests.cpp
+++ b/phosphor-regulators/test/validate-regulators-config_tests.cpp
@@ -518,6 +518,8 @@
     // Valid: test configuration with property rule_id and with no actions.
     {
         json configFile = configurationFile;
+        configFile["chassis"][0]["devices"][0]["configuration"]["comments"][1] =
+            "test multiple array elements in comments.";
         EXPECT_JSON_VALID(configFile);
     }
     // Valid: test configuration with property actions and with no rule_id.
@@ -2432,6 +2434,31 @@
         EXPECT_JSON_INVALID(configFile, "Error: Duplicate rail ID.", "");
     }
 }
+TEST(ValidateRegulatorsConfigTest, DuplicateObjectID)
+{
+    // Invalid: test duplicate object ID in device and rail.
+    {
+        json configFile = validConfigFile;
+        configFile["chassis"][0]["devices"][0]["rails"][1]["id"] =
+            "vdd_regulator";
+        EXPECT_JSON_INVALID(configFile, "Error: Duplicate ID.", "");
+    }
+    // Invalid: test duplicate object ID in device and rule.
+    {
+        json configFile = validConfigFile;
+        configFile["rules"][2]["id"] = "vdd_regulator";
+        configFile["rules"][2]["actions"][0]["pmbus_write_vout_command"]
+                  ["format"] = "linear";
+        EXPECT_JSON_INVALID(configFile, "Error: Duplicate ID.", "");
+    }
+    // Invalid: test duplicate object ID in rule and rail.
+    {
+        json configFile = validConfigFile;
+        configFile["chassis"][0]["devices"][0]["rails"][1]["id"] =
+            "set_voltage_rule";
+        EXPECT_JSON_INVALID(configFile, "Error: Duplicate ID.", "");
+    }
+}
 TEST(ValidateRegulatorsConfigTest, InfiniteLoops)
 {
     // Invalid: test run_rule with infinite loop (rules run each other).