github.com/go-graphite/carbonapi@v0.17.0/expr/rewrite/applyByNode/function_test.go (about)

     1  package applyByNode
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/go-graphite/carbonapi/expr/metadata"
     8  	"github.com/go-graphite/carbonapi/expr/types"
     9  	"github.com/go-graphite/carbonapi/pkg/parser"
    10  	th "github.com/go-graphite/carbonapi/tests"
    11  )
    12  
    13  func init() {
    14  	md := New("")
    15  	for _, m := range md {
    16  		metadata.RegisterRewriteFunction(m.Name, m.F)
    17  	}
    18  }
    19  
    20  func TestApplyByNode(t *testing.T) {
    21  	now32 := int64(time.Now().Unix())
    22  
    23  	tests := []th.RewriteTestItem{
    24  		{
    25  			`applyByNode(test.metric*.name, 1, "%.transform")`,
    26  			map[parser.MetricRequest][]*types.MetricData{
    27  				{Metric: "test.metric*.name", From: 0, Until: 1}: {
    28  					types.MakeMetricData("test.metric1.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
    29  					types.MakeMetricData("test.metric2.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
    30  				},
    31  			},
    32  			th.RewriteTestResult{
    33  				Rewritten: true,
    34  				Targets: []string{
    35  					"test.metric1.transform",
    36  					"test.metric2.transform",
    37  				},
    38  				Err: nil,
    39  			},
    40  		},
    41  		{
    42  			// overflow
    43  			`applyByNode(metric*.name, 2, "%.transform")`,
    44  			map[parser.MetricRequest][]*types.MetricData{
    45  				{Metric: "metric*.name", From: 0, Until: 1}: {
    46  					types.MakeMetricData("metric1.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
    47  				},
    48  			},
    49  			th.RewriteTestResult{
    50  				Err: parser.ErrInvalidArg,
    51  			},
    52  		},
    53  	}
    54  
    55  	for _, tt := range tests {
    56  		testName := tt.Target
    57  		t.Run(testName, func(t *testing.T) {
    58  			eval := th.DummyEvaluator()
    59  			th.TestRewriteExpr(t, eval, &tt)
    60  		})
    61  	}
    62  
    63  }