regulators: Add test cases for check_rule_id_exists

*Invalid: test rule_id property in configuration specifies a rule ID that does not exist.
*Invalid: test rule_id property in presence_detection specifies a rule ID that does not exist.
*Invalid: test rule_id property in sensor_monitoring specifies a rule ID that does not exist.

Signed-off-by: Bob King <Bob_King@wistron.com>
Change-Id: I55e2d81b89b96164b9774e59d9487047943945fa
diff --git a/phosphor-regulators/test/validate-regulators-config_tests.cpp b/phosphor-regulators/test/validate-regulators-config_tests.cpp
index 5f55240..ac87f33 100644
--- a/phosphor-regulators/test/validate-regulators-config_tests.cpp
+++ b/phosphor-regulators/test/validate-regulators-config_tests.cpp
@@ -2448,3 +2448,30 @@
         EXPECT_JSON_INVALID(configFile, "Error: Device ID does not exist.", "");
     }
 }
+TEST(ValidateRegulatorsConfigTest, RuleIDExists)
+{
+    // Invalid: test rule_id property in configuration specifies a rule ID that
+    // does not exist.
+    {
+        json configFile = validConfigFile;
+        configFile["chassis"][0]["devices"][0]["configuration"]["rule_id"] =
+            "set_voltage_rule2";
+        EXPECT_JSON_INVALID(configFile, "Error: Rule ID does not exist.", "");
+    }
+    // Invalid: test rule_id property in presence_detection specifies a rule ID
+    // that does not exist.
+    {
+        json configFile = validConfigFile;
+        configFile["chassis"][0]["devices"][0]["presence_detection"]
+                  ["rule_id"] = "set_voltage_rule2";
+        EXPECT_JSON_INVALID(configFile, "Error: Rule ID does not exist.", "");
+    }
+    // Invalid: test rule_id property in sensor_monitoring specifies a rule ID
+    // that does not exist.
+    {
+        json configFile = validConfigFile;
+        configFile["chassis"][0]["devices"][0]["rails"][0]["sensor_monitoring"]
+                  ["rule_id"] = "set_voltage_rule2";
+        EXPECT_JSON_INVALID(configFile, "Error: Rule ID does not exist.", "");
+    }
+}