github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/influxdb/models/statistic_test.go (about)

     1  package models_test
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  
     7  	"github.com/sereiner/library/influxdb/models"
     8  )
     9  
    10  func TestTags_Merge(t *testing.T) {
    11  	examples := []struct {
    12  		Base   map[string]string
    13  		Arg    map[string]string
    14  		Result map[string]string
    15  	}{
    16  		{
    17  			Base:   nil,
    18  			Arg:    nil,
    19  			Result: map[string]string{},
    20  		},
    21  		{
    22  			Base:   nil,
    23  			Arg:    map[string]string{"foo": "foo"},
    24  			Result: map[string]string{"foo": "foo"},
    25  		},
    26  		{
    27  			Base:   map[string]string{"foo": "foo"},
    28  			Arg:    nil,
    29  			Result: map[string]string{"foo": "foo"},
    30  		},
    31  		{
    32  			Base:   map[string]string{"foo": "foo"},
    33  			Arg:    map[string]string{"bar": "bar"},
    34  			Result: map[string]string{"foo": "foo", "bar": "bar"},
    35  		},
    36  		{
    37  			Base:   map[string]string{"foo": "foo", "bar": "bar"},
    38  			Arg:    map[string]string{"zoo": "zoo"},
    39  			Result: map[string]string{"foo": "foo", "bar": "bar", "zoo": "zoo"},
    40  		},
    41  		{
    42  			Base:   map[string]string{"foo": "foo", "bar": "bar"},
    43  			Arg:    map[string]string{"bar": "newbar"},
    44  			Result: map[string]string{"foo": "foo", "bar": "newbar"},
    45  		},
    46  	}
    47  
    48  	for i, example := range examples {
    49  		i++
    50  		result := models.StatisticTags(example.Base).Merge(example.Arg)
    51  		if got, exp := result, example.Result; !reflect.DeepEqual(got, exp) {
    52  			t.Errorf("[Example %d] got %#v, expected %#v", i, got, exp)
    53  		}
    54  	}
    55  }