@@ -56,6 +56,18 @@ func (*mockServer) Blocks(req *BlocksRequest, resp *BlocksResponse) error {
56
56
return nil
57
57
}
58
58
59
+ func (* mockServer ) Resources (req * ResourcesRequest , resp * ResourcesResponse ) error {
60
+ * resp = ResourcesResponse {Resources : []* Resource {
61
+ {
62
+ Name : "example" ,
63
+ Type : "resource" ,
64
+ DeclRange : hcl.Range {Filename : "example.tf" , Start : hcl.Pos {Line : 1 , Column : 1 }, End : hcl.Pos {Line : 1 , Column : 29 }},
65
+ TypeRange : hcl.Range {Filename : "example.tf" , Start : hcl.Pos {Line : 1 , Column : 1 }, End : hcl.Pos {Line : 1 , Column : 8 }},
66
+ },
67
+ }, Err : nil }
68
+ return nil
69
+ }
70
+
59
71
func (* mockServer ) EvalExpr (req * EvalExprRequest , resp * EvalExprResponse ) error {
60
72
* resp = EvalExprResponse {Val : cty .StringVal ("1" ), Err : nil }
61
73
return nil
@@ -179,6 +191,39 @@ func Test_WalkResourceBlocks(t *testing.T) {
179
191
}
180
192
}
181
193
194
+ func Test_WalkResources (t * testing.T ) {
195
+ client , server := startMockServer (t )
196
+ defer server .Listener .Close ()
197
+
198
+ walked := []* Resource {}
199
+ walker := func (block * Resource ) error {
200
+ walked = append (walked , block )
201
+ return nil
202
+ }
203
+
204
+ if err := client .WalkResources ("example" , walker ); err != nil {
205
+ t .Fatal (err )
206
+ }
207
+
208
+ expected := []* Resource {
209
+ {
210
+ Name : "example" ,
211
+ Type : "resource" ,
212
+ DeclRange : hcl.Range {Filename : "example.tf" , Start : hcl.Pos {Line : 1 , Column : 1 }, End : hcl.Pos {Line : 1 , Column : 29 }},
213
+ TypeRange : hcl.Range {Filename : "example.tf" , Start : hcl.Pos {Line : 1 , Column : 1 }, End : hcl.Pos {Line : 1 , Column : 8 }},
214
+ },
215
+ }
216
+
217
+ opts := []cmp.Option {
218
+ cmpopts .IgnoreUnexported (hclsyntax.Body {}),
219
+ cmpopts .IgnoreFields (hclsyntax.LiteralValueExpr {}, "Val" ),
220
+ cmpopts .IgnoreFields (hcl.Pos {}, "Byte" ),
221
+ }
222
+ if ! cmp .Equal (expected , walked , opts ... ) {
223
+ t .Fatalf ("Diff: %s" , cmp .Diff (expected , walked , opts ... ))
224
+ }
225
+ }
226
+
182
227
func Test_EvaluateExpr (t * testing.T ) {
183
228
client , server := startMockServer (t )
184
229
defer server .Listener .Close ()
0 commit comments