52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
package flags
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestMockFlagHandler_HandleFlag_ReturnValue(t *testing.T) {
|
|
// Create a mock handler
|
|
mockHandler := NewMockFlagHandler()
|
|
|
|
// Test that it returns true for any flag
|
|
result := mockHandler.HandleFlag("test-flag", true, false)
|
|
assert.True(t, result, "MockHandler should return true for any flag")
|
|
|
|
// Test with multiple flags
|
|
result = mockHandler.HandleFlag("another-flag", "value", true)
|
|
assert.True(t, result, "MockHandler should return true for any flag")
|
|
|
|
// Verify the flags were stored correctly
|
|
assert.Equal(t, true, mockHandler.handledFlags["test-flag"])
|
|
assert.Equal(t, "value", mockHandler.handledFlags["another-flag"])
|
|
assert.Equal(t, false, mockHandler.changedFlags["test-flag"])
|
|
assert.Equal(t, true, mockHandler.changedFlags["another-flag"])
|
|
}
|
|
|
|
// CustomFlagHandler implements FlagHandler for testing specific return values
|
|
type CustomFlagHandler struct{}
|
|
|
|
func (h *CustomFlagHandler) HandleFlag(name string, value interface{}, changed bool) bool {
|
|
// Only handle specific flags
|
|
switch name {
|
|
case "known-flag":
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
func TestCustomFlagHandler_HandleFlag_ReturnValue(t *testing.T) {
|
|
handler := &CustomFlagHandler{}
|
|
|
|
// Test with a recognized flag
|
|
result := handler.HandleFlag("known-flag", true, false)
|
|
assert.True(t, result, "Should return true for recognized flag")
|
|
|
|
// Test with an unrecognized flag
|
|
result = handler.HandleFlag("unknown-flag", true, false)
|
|
assert.False(t, result, "Should return false for unrecognized flag")
|
|
}
|