@@ -25,10 +25,11 @@ namespace {
2525using ::google::cloud::testing_util::StatusIs;
2626using ::testing::AllOf;
2727using ::testing::Contains;
28+ using ::testing::ElementsAre;
2829using ::testing::HasSubstr;
2930using ::testing::Pair;
3031
31- TEST (ExternalAccountParsing , ValidateStringFieldSuccess) {
32+ TEST (JsonParsingTest , ValidateStringFieldSuccess) {
3233 auto const json = nlohmann::json{{" someField" , " value" }};
3334 auto actual = ValidateStringField (
3435 json, " someField" , " test-object" ,
@@ -37,7 +38,7 @@ TEST(ExternalAccountParsing, ValidateStringFieldSuccess) {
3738 EXPECT_EQ (*actual, " value" );
3839}
3940
40- TEST (ExternalAccountParsing , ValidateStringFieldMissing) {
41+ TEST (JsonParsingTest , ValidateStringFieldMissing) {
4142 auto const json = nlohmann::json{{" some-field" , " value" }};
4243 auto actual = ValidateStringField (
4344 json, " missingField" , " test-object" ,
@@ -51,7 +52,7 @@ TEST(ExternalAccountParsing, ValidateStringFieldMissing) {
5152 Contains (Pair (" origin" , " test" )));
5253}
5354
54- TEST (ExternalAccountParsing , ValidateStringFieldNotString) {
55+ TEST (JsonParsingTest , ValidateStringFieldNotString) {
5556 auto const json =
5657 nlohmann::json{{" some-field" , " value" }, {" wrongType" , true }};
5758 auto actual = ValidateStringField (
@@ -66,7 +67,7 @@ TEST(ExternalAccountParsing, ValidateStringFieldNotString) {
6667 Contains (Pair (" origin" , " test" )));
6768}
6869
69- TEST (ExternalAccountParsing , ValidateStringFieldDefaultSuccess) {
70+ TEST (JsonParsingTest , ValidateStringFieldDefaultSuccess) {
7071 auto const json = nlohmann::json{{" someField" , " value" }};
7172 auto actual = ValidateStringField (
7273 json, " someField" , " test-object" , " default-value" ,
@@ -75,7 +76,7 @@ TEST(ExternalAccountParsing, ValidateStringFieldDefaultSuccess) {
7576 EXPECT_EQ (*actual, " value" );
7677}
7778
78- TEST (ExternalAccountParsing , ValidateStringFieldDefaultMissing) {
79+ TEST (JsonParsingTest , ValidateStringFieldDefaultMissing) {
7980 auto const json = nlohmann::json{{" anotherField" , " value" }};
8081 auto actual = ValidateStringField (
8182 json, " someField" , " test-object" , " default-value" ,
@@ -84,7 +85,7 @@ TEST(ExternalAccountParsing, ValidateStringFieldDefaultMissing) {
8485 EXPECT_EQ (*actual, " default-value" );
8586}
8687
87- TEST (ExternalAccountParsing , ValidateStringFieldDefaultNotInt) {
88+ TEST (JsonParsingTest , ValidateStringFieldDefaultNotInt) {
8889 auto const json =
8990 nlohmann::json{{" some-field" , " value" }, {" wrongType" , true }};
9091 auto actual = ValidateStringField (
@@ -99,7 +100,7 @@ TEST(ExternalAccountParsing, ValidateStringFieldDefaultNotInt) {
99100 Contains (Pair (" origin" , " test" )));
100101}
101102
102- TEST (ExternalAccountParsing , ValidateIntFieldSuccess) {
103+ TEST (JsonParsingTest , ValidateIntFieldSuccess) {
103104 auto const json = nlohmann::json{{" someField" , 42 }};
104105 auto actual = ValidateIntField (
105106 json, " someField" , " test-object" ,
@@ -108,7 +109,7 @@ TEST(ExternalAccountParsing, ValidateIntFieldSuccess) {
108109 EXPECT_EQ (*actual, 42 );
109110}
110111
111- TEST (ExternalAccountParsing , ValidateIntFieldMissing) {
112+ TEST (JsonParsingTest , ValidateIntFieldMissing) {
112113 auto const json = nlohmann::json{{" some-field" , 42 }};
113114 auto actual = ValidateIntField (
114115 json, " missingField" , " test-object" ,
@@ -122,7 +123,7 @@ TEST(ExternalAccountParsing, ValidateIntFieldMissing) {
122123 Contains (Pair (" origin" , " test" )));
123124}
124125
125- TEST (ExternalAccountParsing , ValidateIntFieldNotString) {
126+ TEST (JsonParsingTest , ValidateIntFieldNotString) {
126127 auto const json =
127128 nlohmann::json{{" some-field" , " value" }, {" wrongType" , true }};
128129 auto actual = ValidateIntField (
@@ -137,7 +138,7 @@ TEST(ExternalAccountParsing, ValidateIntFieldNotString) {
137138 Contains (Pair (" origin" , " test" )));
138139}
139140
140- TEST (ExternalAccountParsing , ValidateIntFieldDefaultSuccess) {
141+ TEST (JsonParsingTest , ValidateIntFieldDefaultSuccess) {
141142 auto const json = nlohmann::json{{" someField" , 42 }};
142143 auto actual = ValidateIntField (
143144 json, " someField" , " test-object" , 42 ,
@@ -146,7 +147,7 @@ TEST(ExternalAccountParsing, ValidateIntFieldDefaultSuccess) {
146147 EXPECT_EQ (*actual, 42 );
147148}
148149
149- TEST (ExternalAccountParsing , ValidateIntFieldDefaultMissing) {
150+ TEST (JsonParsingTest , ValidateIntFieldDefaultMissing) {
150151 auto const json = nlohmann::json{{" anotherField" , " value" }};
151152 auto actual = ValidateIntField (
152153 json, " someField" , " test-object" , 42 ,
@@ -155,7 +156,7 @@ TEST(ExternalAccountParsing, ValidateIntFieldDefaultMissing) {
155156 EXPECT_EQ (*actual, 42 );
156157}
157158
158- TEST (ExternalAccountParsing , ValidateIntFieldDefaultNotString) {
159+ TEST (JsonParsingTest , ValidateIntFieldDefaultNotString) {
159160 auto const json =
160161 nlohmann::json{{" some-field" , " value" }, {" wrongType" , true }};
161162 auto actual = ValidateIntField (
@@ -170,6 +171,43 @@ TEST(ExternalAccountParsing, ValidateIntFieldDefaultNotString) {
170171 Contains (Pair (" origin" , " test" )));
171172}
172173
174+ TEST (JsonParsingTest, ValidateStringArrayFieldSuccess) {
175+ auto const json = nlohmann::json{{" someField" , {" value1" , " value2" }}};
176+ auto actual = ValidateStringArrayField (
177+ json, " someField" , " test-object" ,
178+ internal::ErrorContext ({{" origin" , " test" }, {" filename" , " /dev/null" }}));
179+ ASSERT_STATUS_OK (actual);
180+ EXPECT_THAT (*actual, ElementsAre (" value1" , " value2" ));
181+ }
182+
183+ TEST (JsonParsingTest, ValidateStringArrayFieldMissing) {
184+ auto const json = nlohmann::json{{" some-field" , {" value1" , " value2" }}};
185+ auto actual = ValidateStringArrayField (
186+ json, " missingField" , " test-object" ,
187+ internal::ErrorContext ({{" origin" , " test" }, {" filename" , " /dev/null" }}));
188+ EXPECT_THAT (actual, StatusIs (StatusCode::kInvalidArgument ,
189+ AllOf (HasSubstr (" missingField" ),
190+ HasSubstr (" test-object" ))));
191+ EXPECT_THAT (actual.status ().error_info ().metadata (),
192+ Contains (Pair (" filename" , " /dev/null" )));
193+ EXPECT_THAT (actual.status ().error_info ().metadata (),
194+ Contains (Pair (" origin" , " test" )));
195+ }
196+
197+ TEST (JsonParsingTest, ValidateStringArrayFieldNotString) {
198+ auto const json = nlohmann::json ({" wrongType" , {" value1" , true }});
199+ auto actual = ValidateStringField (
200+ json, " wrongType" , " test-object" ,
201+ internal::ErrorContext ({{" origin" , " test" }, {" filename" , " /dev/null" }}));
202+ EXPECT_THAT (actual, StatusIs (StatusCode::kInvalidArgument ,
203+ AllOf (HasSubstr (" wrongType" ),
204+ HasSubstr (" test-object" ))));
205+ EXPECT_THAT (actual.status ().error_info ().metadata (),
206+ Contains (Pair (" filename" , " /dev/null" )));
207+ EXPECT_THAT (actual.status ().error_info ().metadata (),
208+ Contains (Pair (" origin" , " test" )));
209+ }
210+
173211} // namespace
174212GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
175213} // namespace oauth2_internal
0 commit comments