package list import ( "testing" "github.com/stretchr/testify/assert" ) func TestNewFlag(t *testing.T) { t.Run("Empty", func(t *testing.T) { assert.Nil(t, ParseKeyValue("")) }) t.Run("Default", func(t *testing.T) { f := ParseKeyValue("foo") assert.Equal(t, "foo", f.Key) assert.Equal(t, "true", f.Value) }) t.Run("True", func(t *testing.T) { f := ParseKeyValue("feature:true") assert.Equal(t, "feature", f.Key) assert.Equal(t, "true", f.Value) }) t.Run("False", func(t *testing.T) { f := ParseKeyValue("feature:false") assert.Equal(t, "feature", f.Key) assert.Equal(t, "false", f.Value) }) t.Run("EmptyValue", func(t *testing.T) { f := ParseKeyValue("feature:") assert.Equal(t, "feature", f.Key) assert.Equal(t, "true", f.Value) }) t.Run("StringValue", func(t *testing.T) { f := ParseKeyValue("feature:string") assert.Equal(t, "feature", f.Key) assert.Equal(t, "string", f.Value) }) t.Run("WhitespaceBetween", func(t *testing.T) { f := ParseKeyValue("feature : string") assert.Equal(t, "feature", f.Key) assert.Equal(t, "string", f.Value) }) t.Run("WhitespacePadding", func(t *testing.T) { f := ParseKeyValue(" feature:string ") assert.Equal(t, "feature", f.Key) assert.Equal(t, "string", f.Value) }) } func TestFlag_String(t *testing.T) { t.Run("Default", func(t *testing.T) { assert.Equal(t, "foo", ParseKeyValue("foo").String()) }) t.Run("True", func(t *testing.T) { assert.Equal(t, "feature", ParseKeyValue("feature:true").String()) }) t.Run("False", func(t *testing.T) { assert.Equal(t, "feature:false", ParseKeyValue("feature:false").String()) }) t.Run("EmptyValue", func(t *testing.T) { assert.Equal(t, "feature", ParseKeyValue("feature:").String()) }) t.Run("StringValue", func(t *testing.T) { assert.Equal(t, "feature:string", ParseKeyValue("feature:string").String()) }) t.Run("WhitespaceBetween", func(t *testing.T) { assert.Equal(t, "feature:string", ParseKeyValue("feature : string").String()) }) t.Run("WhitespacePadding", func(t *testing.T) { assert.Equal(t, "featureq62:String!!#$^&*(", ParseKeyValue(" ^&^&(&*&)feature!q62:String!!#$^&*( ").String()) }) t.Run("SpecialChars", func(t *testing.T) { assert.Equal(t, "feature:String!!#$^&*(", ParseKeyValue(" feature:String!!#$^&*( ").String()) }) }