MCPcopy
hub / github.com/grafana/tempo / TestBinaryOperation_extractConditions

Function TestBinaryOperation_extractConditions

pkg/traceql/ast_conditions_test.go:350–420  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

348}
349
350func TestBinaryOperation_extractConditions(t *testing.T) {
351 tests := []struct {
352 name string
353 op *BinaryOperation
354 want []Condition
355 }{
356 {
357 name: "string array equal",
358 op: &BinaryOperation{Op: OpEqual, LHS: NewAttribute("attr"), RHS: NewStaticStringArray([]string{"a", "b"})},
359 want: []Condition{
360 newCondition(NewAttribute("attr"), OpEqual, NewStaticStringArray([]string{"a", "b"})),
361 },
362 },
363 {
364 name: "string IN array",
365 op: &BinaryOperation{Op: OpIn, LHS: NewAttribute("attr"), RHS: NewStaticStringArray([]string{"a", "b"})},
366 want: []Condition{
367 newCondition(NewAttribute("attr"), OpIn, NewStaticStringArray([]string{"a", "b"})),
368 },
369 },
370 {
371 name: "int array equal",
372 op: &BinaryOperation{Op: OpEqual, LHS: NewAttribute("attr"), RHS: NewStaticIntArray([]int{1, 2, 3})},
373 want: []Condition{
374 newCondition(NewAttribute("attr"), OpEqual, NewStaticIntArray([]int{1, 2, 3})),
375 },
376 },
377 {
378 name: "int IN array",
379 op: &BinaryOperation{Op: OpIn, LHS: NewAttribute("attr"), RHS: NewStaticIntArray([]int{1, 2, 3})},
380 want: []Condition{
381 newCondition(NewAttribute("attr"), OpIn, NewStaticIntArray([]int{1, 2, 3})),
382 },
383 },
384 {
385 name: "string array not regex",
386 op: &BinaryOperation{Op: OpNotRegex, LHS: NewAttribute("attr"), RHS: NewStaticStringArray([]string{"a.*", "b.*"})},
387 want: []Condition{
388 newCondition(NewAttribute("attr"), OpNotRegex, NewStaticStringArray([]string{"a.*", "b.*"})),
389 },
390 },
391 {
392 name: "string array MATCH ANY regex",
393 op: &BinaryOperation{Op: OpRegexMatchAny, LHS: NewAttribute("attr"), RHS: NewStaticStringArray([]string{"a.*", "b.*"})},
394 want: []Condition{
395 newCondition(NewAttribute("attr"), OpRegexMatchAny, NewStaticStringArray([]string{"a.*", "b.*"})),
396 },
397 },
398 }
399
400 for _, tt := range tests {
401 t.Run(tt.name, func(t *testing.T) {
402 req := &FetchSpansRequest{
403 AllConditions: true,
404 }
405 tt.op.extractConditions(req)
406 require.Equal(t, tt.want, req.Conditions)
407 require.Equal(t, true, req.AllConditions, "allConditions should be true")

Callers

nothing calls this directly

Calls 7

NewAttributeFunction · 0.85
NewStaticStringArrayFunction · 0.85
newConditionFunction · 0.85
NewStaticIntArrayFunction · 0.85
extractConditionsMethod · 0.65
RunMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected