MCPcopy Create free account
hub / github.com/araddon/qlbridge / TestNamespaces

Function TestNamespaces

datasource/context_test.go:192–235  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

190}
191
192func TestNamespaces(t *testing.T) {
193
194 a1 := value.NewStringValue("a1")
195 b1 := value.NewStringValue("b1")
196 b2 := value.NewStringValue("b2")
197 c1 := value.NewStringValue("c1")
198 d1 := value.NewStringValue("d1")
199 readers := []expr.ContextReader{
200 datasource.NewNamespacedContextReader(datasource.NewContextSimpleData(map[string]value.Value{
201 "a": a1,
202 "b": b1,
203 "d": d1,
204 }), "foo"),
205 datasource.NewNamespacedContextReader(datasource.NewContextSimpleData(map[string]value.Value{
206 "b": b2,
207 "c": c1,
208 }), "BAR"),
209 datasource.NewContextSimpleData(map[string]value.Value{
210 "a": a1,
211 }),
212 }
213
214 nc := datasource.NewNestedContextReader(readers, time.Now())
215 expected := map[string]value.Value{
216 "foo.a": a1,
217 "foo.b": b1,
218 "foo.d": d1,
219 "bar.b": b2,
220 "bar.c": c1,
221 "a": a1,
222 }
223
224 for k, v := range expected {
225 checkval(t, nc, k, v)
226 }
227 r := nc.Row()
228 assert.Equal(t, len(expected), len(r))
229 for k, v := range expected {
230 assert.Equal(t, v, r[k])
231 }
232
233 // _, ok := nc.Get("no")
234 // assert.Equal(t, false, ok)
235}
236
237func checkval(t *testing.T, r expr.ContextReader, key string, expected value.Value) {
238 val, ok := r.Get(key)

Callers

nothing calls this directly

Calls 7

RowMethod · 0.95
NewStringValueFunction · 0.92
NewContextSimpleDataFunction · 0.92
NewNestedContextReaderFunction · 0.92
checkvalFunction · 0.85
EqualMethod · 0.65

Tested by

no test coverage detected