package generic

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func TestMergeMap(t *testing.T) {
	const tenantTagKey = "TENANT_TAG"
	const projectTagKey = "PROJECT_TAG"
	cases := []struct {
		orig       map[string]string
		additional map[string]string
		expect     map[string]string
	}{
		{
			orig: map[string]string{
				tenantTagKey: "123456",
			},
			additional: map[string]string{},
			expect: map[string]string{
				tenantTagKey: "123456",
			},
		},
		{
			orig: map[string]string{
				tenantTagKey: "123456",
			},
			additional: map[string]string{
				projectTagKey: "234567",
			},
			expect: map[string]string{
				tenantTagKey:  "123456",
				projectTagKey: "234567",
			},
		},
		{
			orig: map[string]string{
				tenantTagKey: "123456",
			},
			additional: map[string]string{
				tenantTagKey: "234567",
			},
			expect: map[string]string{
				tenantTagKey: "123456",
			},
		},
	}

	for _, c := range cases {
		require.Equal(t, c.expect, MergeMap(c.orig, c.additional))
	}
}
