buffet: Add Array type support for Buffet command and state props
Added definition of ArrayPropType and ArrayPropValue, added
parsing code to ObjectSchema to parse the array object type as well
as type detection code to detect array types from 'items', 'enum',
'default' properties of object schema definition.
Added a bunch of unit tests to verify that array definitions can
be parsed, values of type arrays can be constructuted and value
validation code works with arrays.
BUG=brillo:107
TEST=`FEATURES=test emerge-link buffet`
Change-Id: I0f7bbed012792e0a49fa1b071bb56fee512825a9
Reviewed-on: https://chromium-review.googlesource.com/261616
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/commands/schema_constants.cc b/buffet/commands/schema_constants.cc
index 22a4766..12cc6b6 100644
--- a/buffet/commands/schema_constants.cc
+++ b/buffet/commands/schema_constants.cc
@@ -31,6 +31,7 @@
const char kType[] = "type";
const char kDisplayName[] = "displayName";
const char kDefault[] = "default";
+const char kItems[] = "items";
const char kNumeric_Min[] = "minimum";
const char kNumeric_Max[] = "maximum";
@@ -40,7 +41,6 @@
const char kOneOf_Enum[] = "enum";
const char kOneOf_Metadata[] = "metadata";
-const char kOneOf_MetaSchema[] = "schema";
const char kObject_Properties[] = "properties";