regulators: Add test cases for check_number_of_elements_in_masks

*Invalid: test number of elements in masks not equal to number in
values in i2c_compare_bytes.
*Invalid: test number of elements in masks not equal to number in
values in i2c_write_bytes.

Signed-off-by: Bob King <Bob_King@wistron.com>
Change-Id: I523782a46c2b52035bfa2b6b4531ce79c37a62f9
diff --git a/phosphor-regulators/test/validate-regulators-config_tests.cpp b/phosphor-regulators/test/validate-regulators-config_tests.cpp
index ac87f33..eb1ca1f 100644
--- a/phosphor-regulators/test/validate-regulators-config_tests.cpp
+++ b/phosphor-regulators/test/validate-regulators-config_tests.cpp
@@ -2475,3 +2475,32 @@
         EXPECT_JSON_INVALID(configFile, "Error: Rule ID does not exist.", "");
     }
 }
+TEST(ValidateRegulatorsConfigTest, NumberOfElementsInMasks)
+{
+    // Invalid: test number of elements in masks not equal to number in values
+    // in i2c_compare_bytes.
+    {
+        json configFile = validConfigFile;
+        configFile["rules"][0]["actions"][1]["i2c_compare_bytes"]["register"] =
+            "0x82";
+        configFile["rules"][0]["actions"][1]["i2c_compare_bytes"]["values"] = {
+            "0x02", "0x73"};
+        configFile["rules"][0]["actions"][1]["i2c_compare_bytes"]["masks"] = {
+            "0x7F"};
+        EXPECT_JSON_INVALID(configFile,
+                            "Error: Invalid i2c_compare_bytes action.", "");
+    }
+    // Invalid: test number of elements in masks not equal to number in values
+    // in i2c_write_bytes.
+    {
+        json configFile = validConfigFile;
+        configFile["rules"][0]["actions"][1]["i2c_write_bytes"]["register"] =
+            "0x82";
+        configFile["rules"][0]["actions"][1]["i2c_write_bytes"]["values"] = {
+            "0x02", "0x73"};
+        configFile["rules"][0]["actions"][1]["i2c_write_bytes"]["masks"] = {
+            "0x7F"};
+        EXPECT_JSON_INVALID(configFile,
+                            "Error: Invalid i2c_write_bytes action.", "");
+    }
+}