@@ -183,15 +183,23 @@ void testExecuteBatch() throws SQLException {
183183
184184 @ Test
185185 void testGetProjectStageFieldNames () {
186- BiConsumer <String , List <String >> asserter = (projectStage , expectedFieldNames ) -> assertEquals (
186+ BiConsumer <String , List <String >> successAsserter = (projectStage , expectedFieldNames ) -> assertEquals (
187187 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+ };
188194 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 supported" ),
202+ () -> failureAsserter .accept ("{title: {fieldName: 'fieldValue'}}" , "Expressions are not supported" ));
195203 }
196204
197205 @ Nested
0 commit comments