@@ -76,31 +76,30 @@ class FieldProjectorTest {
7676
7777 @ BeforeAll
7878 static void setupFlatDocMaps () {
79- // NOTE: FieldProjectors are currently implemented so that
80- // a) when block listing: already present _id fields are never removed even if specified
81- // b) when allow listing: already present _id fields are always kept even if not specified
82-
8379 // key projection settings
8480 BsonDocument keyDocument1 =
8581 BsonDocument .parse (
8682 "{_id: 'ABC-123', myBoolean: true, myInt: 42, "
8783 + "myBytes: {$binary: 'QUJD', $type: '00'}, myArray: []}" );
88- BsonDocument keyDocument2 = BsonDocument .parse ("{_id: 'ABC-123' }" );
84+ BsonDocument keyDocument2 = BsonDocument .parse ("{}" );
8985 BsonDocument keyDocument3 =
9086 BsonDocument .parse (
9187 "{_id: 'ABC-123', myBytes: {$binary: 'QUJD', $type: '00'}, myArray: []}" );
9288 BsonDocument keyDocument4 =
9389 BsonDocument .parse (
94- "{_id: 'ABC-123', myBoolean: true, myBytes: {$binary: 'QUJD', $type: '00'}, "
95- + "myArray: []}" );
90+ "{myBoolean: true, myBytes: {$binary: 'QUJD', $type: '00'}, myArray: []}" );
91+ BsonDocument keyDocument5 =
92+ BsonDocument .parse (
93+ "{myBoolean: true, myInt: 42, "
94+ + "myBytes: {$binary: 'QUJD', $type: '00'}, myArray: []}" );
9695
9796 flatKeyFieldsMapBlockList =
9897 new HashMap <String , BsonDocument >() {
9998 {
10099 put ("" , keyDocument1 );
101100 put ("*" , keyDocument2 );
102101 put ("**" , keyDocument2 );
103- put ("_id" , keyDocument1 );
102+ put ("_id" , keyDocument5 );
104103 put ("myBoolean, myInt" , keyDocument3 );
105104 put ("missing1, unknown2" , keyDocument1 );
106105 }
@@ -123,14 +122,17 @@ static void setupFlatDocMaps() {
123122 "{_id: 'XYZ-789', myLong: {$numberLong: '42'}, "
124123 + "myDouble: 23.23, myString: 'BSON', "
125124 + "myBytes: {$binary: 'eHl6', $type: '00'}, myArray: []}" );
126- BsonDocument valueDocument2 = BsonDocument .parse ("{_id: 'XYZ-789' }" );
125+ BsonDocument valueDocument2 = BsonDocument .parse ("{}" );
127126 BsonDocument valueDocument3 =
128127 BsonDocument .parse (
129128 "{_id: 'XYZ-789', myString: 'BSON', "
130129 + "myBytes: {$binary: 'eHl6', $type: '00'}, myArray: []}" );
131130 BsonDocument valueDocument4 =
132131 BsonDocument .parse (
133- "{_id: 'XYZ-789', myDouble: 23.23, "
132+ "{myDouble: 23.23, myBytes: {$binary: 'eHl6', $type: '00'}, myArray: []}" );
133+ BsonDocument valueDocument5 =
134+ BsonDocument .parse (
135+ "{ myLong: {$numberLong: '42'}, myDouble: 23.23, myString: 'BSON', "
134136 + "myBytes: {$binary: 'eHl6', $type: '00'}, myArray: []}" );
135137
136138 flatValueFieldsMapBlockList =
@@ -139,7 +141,7 @@ static void setupFlatDocMaps() {
139141 put ("" , valueDocument1 );
140142 put ("*" , valueDocument2 );
141143 put ("**" , valueDocument2 );
142- put ("_id" , valueDocument1 );
144+ put ("_id" , valueDocument5 );
143145 put ("myLong, myDouble" , valueDocument3 );
144146 put ("missing1,unknown2" , valueDocument1 );
145147 }
@@ -159,26 +161,16 @@ static void setupFlatDocMaps() {
159161
160162 @ BeforeAll
161163 static void setupNestedFieldLists () {
162-
163- // NOTE: FieldProjectors are currently implemented so that
164- // a) when block listing: already present _id fields are never removed even if specified
165- // and
166- // b) when allow listing: already present _id fields are always kept even if not specified
167-
168164 BsonDocument keyDocument1 =
169165 BsonDocument .parse (
170- "{_id: 'ABC-123', myInt: 42, "
171- + "subDoc1: {myBoolean: false}, subDoc2: {myString: 'BSON2'}}" );
166+ "{myInt: 42, subDoc1: {myBoolean: false}, subDoc2: {myString: 'BSON2'}}" );
172167 BsonDocument keyDocument2 =
173168 BsonDocument .parse (
174- "{_id: 'ABC-123', "
175- + "subDoc1: {myString: 'BSON1', myBoolean: false}, "
176- + "subDoc2: {myString: 'BSON2', myBoolean: true}}" );
177- BsonDocument keyDocument3 = BsonDocument .parse ("{_id: 'ABC-123'}" );
169+ "{subDoc1: {myString: 'BSON1', myBoolean: false}, subDoc2: {myString: 'BSON2', myBoolean: true}}" );
170+ BsonDocument keyDocument3 = BsonDocument .parse ("{}" );
178171 BsonDocument keyDocument4 =
179- BsonDocument .parse (
180- "{_id: 'ABC-123', subDoc1: {myBoolean: false}, subDoc2: {myBoolean: true}}" );
181- BsonDocument keyDocument5 = BsonDocument .parse ("{_id: 'ABC-123', subDoc1: {}, subDoc2: {}}" );
172+ BsonDocument .parse ("{subDoc1: {myBoolean: false}, subDoc2: {myBoolean: true}}" );
173+ BsonDocument keyDocument5 = BsonDocument .parse ("{subDoc1: {}, subDoc2: {}}" );
182174 BsonDocument keyDocument6 =
183175 BsonDocument .parse ("{_id: 'ABC-123', myInt: 42, subDoc1: {}, subDoc2: {}}" );
184176
@@ -202,26 +194,23 @@ static void setupNestedFieldLists() {
202194 };
203195
204196 // Value documents
205- BsonDocument valueDocument1 = BsonDocument .parse ("{_id: 'XYZ-789', myBoolean: true}" );
206- BsonDocument valueDocument2 = BsonDocument .parse ("{_id: 'XYZ-789' }" );
197+ BsonDocument valueDocument1 = BsonDocument .parse ("{myBoolean: true}" );
198+ BsonDocument valueDocument2 = BsonDocument .parse ("{}" );
207199 BsonDocument valueDocument3 =
208200 BsonDocument .parse (
209201 "{_id: 'XYZ-789', myBoolean: true, "
210202 + "subDoc1: {myFieldA: 'some text', myFieldB: 12.34}}" );
211203 BsonDocument valueDocument4 =
212204 BsonDocument .parse (
213- "{_id: 'XYZ-789', "
214- + "subDoc1: {subSubDoc: {myString: 'some text', myInt: 0, myBoolean: false}}, subDoc2: {}}" );
205+ "{subDoc1: {subSubDoc: {myString: 'some text', myInt: 0, myBoolean: false}}, subDoc2: {}}" );
215206 BsonDocument valueDocument5 =
216207 BsonDocument .parse (
217- "{_id: 'XYZ-789', "
218- + "subDoc1: {subSubDoc: {myString: 'some text', myInt: 0, myBoolean: false}}, "
208+ "{subDoc1: {subSubDoc: {myString: 'some text', myInt: 0, myBoolean: false}}, "
219209 + "subDoc2: {subSubDoc: {myBytes: {$binary: 'eHl6', $type: '00'}, "
220210 + " myArray: [{key: 'abc', value: 123}, {key: 'xyz', value: 987}]}}}" );
221211 BsonDocument valueDocument6 =
222212 BsonDocument .parse (
223- "{_id: 'XYZ-789',"
224- + "subDoc1: {myFieldA: 'some text', myFieldB: 12.34}, subDoc2: {myFieldA: 'some text', myFieldB: 12.34}}" );
213+ "{subDoc1: {myFieldA: 'some text', myFieldB: 12.34}, subDoc2: {myFieldA: 'some text', myFieldB: 12.34}}" );
225214 BsonDocument valueDocument7 =
226215 BsonDocument .parse (
227216 "{_id: 'XYZ-789', myBoolean: true,"
@@ -235,8 +224,7 @@ static void setupNestedFieldLists() {
235224 BsonDocument .parse ("{_id: 'XYZ-789', myBoolean: true, subDoc1: {}, subDoc2: {}}" );
236225 BsonDocument valueDocument10 =
237226 BsonDocument .parse (
238- "{_id: 'XYZ-789',"
239- + "subDoc1: {myFieldA: 'some text', myFieldB: 12.34, "
227+ "{ subDoc1: {myFieldA: 'some text', myFieldB: 12.34, "
240228 + "subSubDoc: {myString: 'some text', myInt: 0, myBoolean: false}}, "
241229 + "subDoc2: {subSubDoc: {myArray: [{key: 'abc', value: 123}, {key: 'xyz', value: 987}]}}}" );
242230 BsonDocument valueDocument11 =
@@ -248,8 +236,7 @@ static void setupNestedFieldLists() {
248236 + " subSubDoc: {myBytes: {$binary: 'eHl6', $type: '00'}, "
249237 + " myArray: [{key: 'abc', value: 123}, {key: 'xyz', value: 987}]}}}" );
250238 BsonDocument valueDocument12 =
251- BsonDocument .parse (
252- "{_id: 'XYZ-789', " + "subDoc2: {subSubDoc: {myArray: [{key: 'abc'}, {key: 'xyz'}]}}}" );
239+ BsonDocument .parse ("{subDoc2: {subSubDoc: {myArray: [{key: 'abc'}, {key: 'xyz'}]}}}" );
253240
254241 nestedValueFieldsMapBlockList =
255242 new HashMap <String , BsonDocument >() {
0 commit comments