Are you sure? ExposesField combines "synthetic" as well as "original" fields hence a method like exposedFieldsCount should consider synthetic as well as original fields.

In addition to that I added a test case to verify that this is appropriate.