github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/point_test.go (about)

     1  // Unless explicitly stated otherwise all files in this repository are licensed
     2  // under the MIT License.
     3  // This product includes software developed at Guance Cloud (https://www.guance.com/).
     4  // Copyright 2021-present Guance, Inc.
     5  
     6  package ptinput
     7  
     8  import (
     9  	"testing"
    10  	"time"
    11  
    12  	"github.com/GuanceCloud/cliutils/point"
    13  	"github.com/GuanceCloud/platypus/pkg/ast"
    14  )
    15  
    16  func TestPt(t *testing.T) {
    17  	pt := NewPlPoint(point.Logging, "t", nil, nil, time.Now())
    18  	if _, _, err := pt.Get("a"); err == nil {
    19  		t.Fatal("err == nil")
    20  	}
    21  
    22  	if _, _, e := pt.Get("a"); e == nil {
    23  		t.Fatal("ok")
    24  	}
    25  
    26  	if ok := pt.Set("a", 1, ast.Int); !ok {
    27  		t.Fatal(ok)
    28  	}
    29  
    30  	if ok := pt.Set("a1", []any{1}, ast.List); !ok {
    31  		t.Fatal(ok)
    32  	}
    33  
    34  	if ok := pt.Set("xx2", []any{1}, ast.List); !ok {
    35  		t.Fatal(ok)
    36  	}
    37  
    38  	if ok := pt.Set("xx2", 1.2, ast.Float); !ok {
    39  		t.Fatal(ok)
    40  	}
    41  
    42  	if _, _, err := pt.Get("xx2"); err != nil {
    43  		t.Fatal(err)
    44  	}
    45  
    46  	if err := pt.RenameKey("xx2", "xxb"); err != nil {
    47  		t.Fatal(err)
    48  	}
    49  
    50  	if ok := pt.SetTag("a", 1., ast.Float); !ok {
    51  		t.Fatal(ok)
    52  	}
    53  
    54  	if ok := pt.Set("a", 1, ast.Int); !ok {
    55  		t.Fatal(ok)
    56  	}
    57  
    58  	if _, ok := pt.Fields()["a"]; ok {
    59  		t.Fatal("a in fields")
    60  	}
    61  
    62  	if err := pt.RenameKey("a", "b"); err != nil {
    63  		t.Fatal(err)
    64  	}
    65  
    66  	if pt.PtTime().UnixNano() == 0 {
    67  		t.Fatal("time == 0")
    68  	}
    69  
    70  	pt.GetAggBuckets()
    71  	pt.SetAggBuckets(nil)
    72  
    73  	pt.Set("time", 1, ast.Int)
    74  	pt.KeyTime2Time()
    75  	if pt.PtTime().UnixNano() != 1 {
    76  		t.Fatal("time != 1")
    77  	}
    78  
    79  	pt.MarkDrop(true)
    80  	if !pt.Dropped() {
    81  		t.Fatal("!dropped")
    82  	}
    83  
    84  	dpt := pt.Point()
    85  
    86  	pt = WrapPoint(point.Logging, dpt)
    87  
    88  	if _, _, err := pt.Get("b"); err != nil {
    89  		t.Fatal(err.Error())
    90  	}
    91  
    92  	if _, ok := pt.Tags()["b"]; !ok {
    93  		t.Fatal("b not in tags")
    94  	}
    95  
    96  	if _, dtyp, e := pt.Get("b"); e != nil || dtyp != ast.String {
    97  		t.Fatal("not tag")
    98  	}
    99  
   100  	if ok := pt.Set("b", []any{}, ast.List); !ok {
   101  		t.Fatal(ok)
   102  	}
   103  
   104  	if _, ok := pt.Fields()["xxb"]; !ok {
   105  		t.Fatal("xxb not in field")
   106  	}
   107  
   108  	if pt.GetPtName() != "t" {
   109  		t.Fatal("name != \"t\"")
   110  	}
   111  
   112  	pt.SetPtName("t2")
   113  	if pt.GetPtName() != "t2" {
   114  		t.Fatal("name != \"t2\"")
   115  	}
   116  }