@@ -183,15 +183,23 @@ void testExecuteBatch() throws SQLException {
183
183
184
184
@ Test
185
185
void testGetProjectStageFieldNames () {
186
- BiConsumer <String , List <String >> asserter = (projectStage , expectedFieldNames ) -> assertEquals (
186
+ BiConsumer <String , List <String >> successAsserter = (projectStage , expectedFieldNames ) -> assertEquals (
187
187
expectedFieldNames , MongoStatement .getFieldNamesFromProjectStage (BsonDocument .parse (projectStage )));
188
+ BiConsumer <String , String > failureAsserter = (projectStage , expectedMessageFragment ) -> {
189
+ Throwable e = assertThrows (
190
+ RuntimeException .class ,
191
+ () -> MongoStatement .getFieldNamesFromProjectStage (BsonDocument .parse (projectStage )));
192
+ assertThat (e .getMessage ()).contains (expectedMessageFragment );
193
+ };
188
194
assertAll (
189
- () -> asserter .accept ("{title: 1, publishYear: 1}" , List .of ("title" , "publishYear" , "_id" )),
190
- () -> asserter .accept ("{title: 1, publishYear: 0}" , List .of ("title" , "_id" )),
191
- () -> asserter .accept ("{title: 1, publishYear: false}" , List .of ("title" , "_id" )),
192
- () -> asserter .accept ("{title: 1, _id: 0}" , List .of ("title" )),
193
- () -> asserter .accept ("{title: 1, _id: false}" , List .of ("title" )),
194
- () -> asserter .accept ("{_id: 1, title: 1}" , List .of ("_id" , "title" )));
195
+ () -> successAsserter .accept ("{title: 1, publishYear: 1}" , List .of ("title" , "publishYear" , "_id" )),
196
+ () -> successAsserter .accept ("{title: 1, _id: 0}" , List .of ("title" )),
197
+ () -> successAsserter .accept ("{title: 1, _id: false}" , List .of ("title" )),
198
+ () -> successAsserter .accept ("{_id: 1, title: 1}" , List .of ("_id" , "title" )),
199
+ () -> failureAsserter .accept ("{title: 1, publishYear: 0}" , "Exclusions are not allowed" ),
200
+ () -> failureAsserter .accept ("{title: 1, publishYear: false}" , "Exclusions are not allowed" ),
201
+ () -> failureAsserter .accept ("{title: '$fieldName'}" , "Expressions are not allowed" ),
202
+ () -> failureAsserter .accept ("{title: {fieldName: 'fieldValue'}}" , "Expressions are not allowed" ));
195
203
}
196
204
197
205
@ Nested
0 commit comments