@@ -147,11 +147,11 @@ public void ExpressionWithVariableSuffix()
147147 var suffix = "raw" ;
148148 var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
149149 var resolved = resolver . Resolve ( Field < Project > ( p => p . Name . Suffix ( suffix ) ) ) ;
150- resolved . Should ( ) . EndWith ( " raw") ;
150+ resolved . Should ( ) . Be ( "name. raw") ;
151151 resolver . CachedFields . Should ( ) . Be ( 0 ) ;
152152 suffix = "foo" ;
153153 resolved = resolver . Resolve ( Field < Project > ( p => p . Name . Suffix ( suffix ) ) ) ;
154- resolved . Should ( ) . EndWith ( " foo") ;
154+ resolved . Should ( ) . Be ( "name. foo") ;
155155 resolver . CachedFields . Should ( ) . Be ( 0 ) ;
156156 }
157157
@@ -169,16 +169,76 @@ public void ExpressionWithDictionaryItemVariableExpression()
169169 resolved . Should ( ) . Contain ( key ) ;
170170 }
171171
172+ [ U ]
173+ public void ExpressionWithDictionaryItemVariableExpressionAndVariableSuffix ( )
174+ {
175+ var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
176+ var key = "key1" ;
177+ var suffix = "x" ;
178+ var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( suffix ) ) ) ;
179+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
180+ resolved . Should ( ) . Be ( $ "metadata.{ key } .x") ;
181+ key = "key2" ;
182+ suffix = "y" ;
183+ resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( suffix ) ) ) ;
184+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
185+ resolved . Should ( ) . Be ( $ "metadata.{ key } .y") ;
186+ }
187+
188+ [ U ]
189+ public void ExpressionWithDictionaryItemVariableExpressionAndEquivalentVariableSuffix ( )
190+ {
191+ var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
192+ var key = "key1" ;
193+ var suffix = "x" ;
194+ var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( suffix ) ) ) ;
195+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
196+ resolved . Should ( ) . Be ( $ "metadata.{ key } .x") ;
197+ key = "key2" ;
198+ resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( suffix ) ) ) ;
199+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
200+ resolved . Should ( ) . Be ( $ "metadata.{ key } .x") ;
201+ }
202+
203+ [ U ]
204+ public void ExpressionWithDictionaryItemVariableExpressionAndConstantSuffix ( )
205+ {
206+ var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
207+ var key = "key1" ;
208+ var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( "x" ) ) ) ;
209+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
210+ resolved . Should ( ) . Be ( $ "metadata.{ key } .x") ;
211+ key = "key2" ;
212+ resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( "y" ) ) ) ;
213+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
214+ resolved . Should ( ) . Be ( $ "metadata.{ key } .y") ;
215+ }
216+
217+ [ U ]
218+ public void ExpressionWithDictionaryItemVariableExpressionAndEquivalentConstantSuffix ( )
219+ {
220+ var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
221+ var key = "key1" ;
222+ var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( "x" ) ) ) ;
223+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
224+ resolved . Should ( ) . Be ( $ "metadata.{ key } .x") ;
225+ key = "key2" ;
226+ resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ key ] . Suffix ( "x" ) ) ) ;
227+ resolver . CachedFields . Should ( ) . Be ( 0 ) ;
228+ resolved . Should ( ) . Be ( $ "metadata.{ key } .x") ;
229+ }
230+
231+
172232 [ U ]
173233 public void ExpressionWithDictionaryItemConstantExpression ( )
174234 {
175235 var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
176236 var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ "key1" ] ) ) ;
177237 resolver . CachedFields . Should ( ) . Be ( 1 ) ;
178- resolved . Should ( ) . Contain ( " key1") ;
238+ resolved . Should ( ) . Be ( "metadata. key1") ;
179239 resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ "key2" ] ) ) ;
180240 resolver . CachedFields . Should ( ) . Be ( 2 ) ;
181- resolved . Should ( ) . Contain ( " key2") ;
241+ resolved . Should ( ) . Be ( "metadata. key2") ;
182242 }
183243
184244 [ U ]
@@ -188,11 +248,23 @@ public void ExpressionWithDictionaryItemConstantExpressionAndVariableSuffix()
188248 var suffix = "x" ;
189249 var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ "key1" ] . Suffix ( suffix ) ) ) ;
190250 resolver . CachedFields . Should ( ) . Be ( 0 ) ;
191- resolved . Should ( ) . Contain ( "key1" ) . And . EndWith ( " .x") ;
251+ resolved . Should ( ) . Be ( "metadata.key1 .x") ;
192252 suffix = "y" ;
193253 resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ "key2" ] . Suffix ( suffix ) ) ) ;
194254 resolver . CachedFields . Should ( ) . Be ( 0 ) ;
195- resolved . Should ( ) . Contain ( "key2" ) . And . EndWith ( ".y" ) ;
255+ resolved . Should ( ) . Be ( "metadata.key2.y" ) ;
256+ }
257+
258+ [ U ]
259+ public void ExpressionWithDictionaryItemConstantExpressionAndConstantSuffix ( )
260+ {
261+ var resolver = new TestableFieldResolver ( new ConnectionSettings ( ) ) ;
262+ var resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ "key1" ] . Suffix ( "x" ) ) ) ;
263+ resolver . CachedFields . Should ( ) . Be ( 1 ) ;
264+ resolved . Should ( ) . Be ( "metadata.key1.x" ) ;
265+ resolved = resolver . Resolve ( Field < Project > ( p => p . Metadata [ "key2" ] . Suffix ( "y" ) ) ) ;
266+ resolver . CachedFields . Should ( ) . Be ( 2 ) ;
267+ resolved . Should ( ) . Be ( "metadata.key2.y" ) ;
196268 }
197269
198270 [ U ]
0 commit comments