| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package opencost
- import (
- "testing"
- "github.com/opencost/opencost/core/pkg/filter/ast"
- "github.com/opencost/opencost/core/pkg/filter/node"
- )
- func TestNodeMatcher(t *testing.T) {
- var n *Node
- var id ast.Identifier
- var act string
- var actMap map[string]string
- var err error
- n = &Node{
- Properties: &AssetProperties{
- Cluster: "cluster",
- ProviderID: "providerid",
- Provider: "provider",
- Name: "name",
- },
- Labels: AssetLabels{
- "nodegroup": "ng",
- "os": "linux",
- },
- NodeType: "nodetype",
- }
- // test nodeFieldMap
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldProviderID)},
- }
- act, err = nodeFieldMap(nil, id)
- if act != "" || err == nil {
- t.Errorf("expected error for nil node")
- }
- act, err = nodeFieldMap(n, id)
- if err != nil {
- t.Errorf("unexpected error for non-nil node")
- }
- if act != "providerid" {
- t.Errorf("expected %s; received %s", "providerid", act)
- }
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldClusterID)},
- }
- act, err = nodeFieldMap(nil, id)
- if act != "" || err == nil {
- t.Errorf("expected error for nil node")
- }
- act, err = nodeFieldMap(n, id)
- if err != nil {
- t.Errorf("unexpected error for non-nil node")
- }
- if act != "cluster" {
- t.Errorf("expected %s; received %s", "cluster", act)
- }
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldName)},
- }
- act, err = nodeFieldMap(nil, id)
- if act != "" || err == nil {
- t.Errorf("expected error for nil node")
- }
- act, err = nodeFieldMap(n, id)
- if err != nil {
- t.Errorf("unexpected error for non-nil node")
- }
- if act != "name" {
- t.Errorf("expected %s; received %s", "name", act)
- }
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldNodeType)},
- }
- act, err = nodeFieldMap(nil, id)
- if act != "" || err == nil {
- t.Errorf("expected error for nil node")
- }
- act, err = nodeFieldMap(n, id)
- if err != nil {
- t.Errorf("unexpected error for non-nil node")
- }
- if act != "nodetype" {
- t.Errorf("expected %s; received %s", "nodetype", act)
- }
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldProvider)},
- }
- act, err = nodeFieldMap(nil, id)
- if act != "" || err == nil {
- t.Errorf("expected error for nil node")
- }
- act, err = nodeFieldMap(n, id)
- if err != nil {
- t.Errorf("unexpected error for non-nil node")
- }
- if act != "provider" {
- t.Errorf("expected %s; received %s", "provider", act)
- }
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldLabel)},
- Key: "nodegroup",
- }
- act, err = nodeFieldMap(nil, id)
- if act != "" || err == nil {
- t.Errorf("expected error for nil node")
- }
- act, err = nodeFieldMap(n, id)
- if err != nil {
- t.Errorf("unexpected error for non-nil node")
- }
- if act != "ng" {
- t.Errorf("expected %s; received %s", "ng", act)
- }
- // test nodeSliceFieldMap
- id = ast.Identifier{}
- _, err = nodeSliceFieldMap(nil, id)
- if err == nil {
- t.Errorf("expected error for slice")
- }
- _, err = nodeSliceFieldMap(n, id)
- if err == nil {
- t.Errorf("expected error for slice")
- }
- // test nodeMapFieldMap
- id = ast.Identifier{
- Field: &ast.Field{Name: string(node.FieldLabel)},
- }
- actMap, err = nodeMapFieldMap(nil, id)
- if err == nil {
- t.Errorf("expected error for nil node")
- }
- actMap, err = nodeMapFieldMap(n, id)
- if len(actMap) != 2 || err != nil {
- t.Errorf("unexpected error for map")
- }
- }
|