MCPcopy Create free account
hub / github.com/cel-expr/cel-go / TestAttributesConditionalAttrTrueBranch

Function TestAttributesConditionalAttrTrueBranch

interpreter/attributes_test.go:331–363  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

329}
330
331func TestAttributesConditionalAttrTrueBranch(t *testing.T) {
332 reg := newTestRegistry(t)
333 attrs := NewAttributeFactory(containers.DefaultContainer, reg, reg)
334 data := map[string]any{
335 "a": map[int]any{
336 -1: []int32{2, 42},
337 },
338 "b": map[string]any{
339 "c": map[int32]any{
340 -1: []uint{2, 42},
341 },
342 },
343 }
344 vars, _ := NewActivation(data)
345
346 // (true ? a : b.c)[-1][1]
347 tv := attrs.AbsoluteAttribute(2, "a")
348 fv := attrs.MaybeAttribute(3, "b")
349 qualC := makeQualifier(t, attrs, nil, 4, "c")
350 fv.AddQualifier(qualC)
351 cond := attrs.ConditionalAttribute(1, NewConstValue(0, types.True), tv, fv)
352 qualNeg1 := makeQualifier(t, attrs, nil, 5, int64(-1))
353 qual1 := makeQualifier(t, attrs, nil, 6, int64(1))
354 cond.AddQualifier(qualNeg1)
355 cond.AddQualifier(qual1)
356 out, err := cond.Resolve(vars)
357 if err != nil {
358 t.Fatal(err)
359 }
360 if out != int32(42) {
361 t.Errorf("Got %v (%T), wanted 42", out, out)
362 }
363}
364
365func TestAttributesConditionalAttrFalseBranch(t *testing.T) {
366 reg := newTestRegistry(t)

Callers

nothing calls this directly

Calls 10

AbsoluteAttributeMethod · 0.95
MaybeAttributeMethod · 0.95
ConditionalAttributeMethod · 0.95
NewAttributeFactoryFunction · 0.85
makeQualifierFunction · 0.85
NewConstValueFunction · 0.85
newTestRegistryFunction · 0.70
NewActivationFunction · 0.70
AddQualifierMethod · 0.65
ResolveMethod · 0.65

Tested by

no test coverage detected