package entity

import (
	"testing"

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

// Unit test for the Keys method
func TestAdvertisedPatternGroupKeys(t *testing.T) {
	tests := []struct {
		name     string
		input    AdvertisedPatternGroup
		expected []string
	}{
		{
			name: "Non-empty group",
			input: AdvertisedPatternGroup{
				"usw2-az1": "",
				"usw2-az2": "",
				"usw2-az3": "",
			},
			expected: []string{"usw2-az1", "usw2-az2", "usw2-az3"},
		},
		{
			name:     "Empty group",
			input:    AdvertisedPatternGroup{},
			expected: nil,
		},
		{
			name: "Unsorted keys in input",
			input: AdvertisedPatternGroup{
				"usw2-az1": "",
				"usw2-az3": "",
				"usw2-az2": "",
			},
			expected: []string{"usw2-az1", "usw2-az2", "usw2-az3"},
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			result := tt.input.Keys()
			assert.Equal(t, tt.expected, result)
		})
	}
}
