(t *testing.T)
| 329 | } |
| 330 | |
| 331 | func 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 | |
| 365 | func TestAttributesConditionalAttrFalseBranch(t *testing.T) { |
| 366 | reg := newTestRegistry(t) |
nothing calls this directly
no test coverage detected