github.com/Jeffail/benthos/v3@v3.65.0/lib/message/metadata/lazy_copy_test.go (about)

     1  package metadata
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  //------------------------------------------------------------------------------
     9  
    10  func TestLazyCopyBasic(t *testing.T) {
    11  	expMap := map[string]string{
    12  		"foo":  "bar",
    13  		"foo2": "bar2",
    14  		"foo3": "bar3",
    15  		"foo4": "bar4",
    16  		"foo5": "bar5",
    17  	}
    18  	m := LazyCopy(New(expMap))
    19  	if exp, act := "bar", m.Get("foo"); exp != act {
    20  		t.Errorf("Wrong result: %v != %v", act, exp)
    21  	}
    22  	if exp, act := "bar2", m.Get("foo2"); exp != act {
    23  		t.Errorf("Wrong result: %v != %v", act, exp)
    24  	}
    25  
    26  	actMap := map[string]string{}
    27  	m.Iter(func(k, v string) error {
    28  		actMap[k] = v
    29  		return nil
    30  	})
    31  	if exp, act := expMap, actMap; !reflect.DeepEqual(exp, act) {
    32  		t.Errorf("Wrong result: %v != %v", act, exp)
    33  	}
    34  
    35  	m.Delete("foo")
    36  	if exp, act := "", m.Get("foo"); exp != act {
    37  		t.Errorf("Wrong result: %v != %v", act, exp)
    38  	}
    39  	if exp, act := "bar", expMap["foo"]; exp != act {
    40  		t.Errorf("Wrong result: %v != %v", act, exp)
    41  	}
    42  
    43  	m.Set("foo2", "woah_new")
    44  	if exp, act := "woah_new", m.Get("foo2"); exp != act {
    45  		t.Errorf("Wrong result: %v != %v", act, exp)
    46  	}
    47  	if exp, act := "bar2", expMap["foo2"]; exp != act {
    48  		t.Errorf("Wrong result: %v != %v", act, exp)
    49  	}
    50  }
    51  
    52  //------------------------------------------------------------------------------