Files
cleveragents-core/features/enums_coverage.feature
T

173 lines
6.8 KiB
Gherkin

Feature: Domain Enums Coverage
As a developer
I want to ensure all enumeration types are thoroughly tested
So that they work correctly throughout the application
@unit @enums
Scenario: ModelPublisher enum has all expected values
Given I import the ModelPublisher enum
When I check all ModelPublisher values
Then ModelPublisher.OPENAI should equal "ModelPublisherOpenAI"
And ModelPublisher.ANTHROPIC should equal "ModelPublisherAnthropic"
And ModelPublisher.GOOGLE should equal "ModelPublisherGoogle"
And ModelPublisher.DEEPSEEK should equal "ModelPublisherDeepSeek"
And ModelPublisher.PERPLEXITY should equal "ModelPublisherPerplexity"
And ModelPublisher.QWEN should equal "ModelPublisherQwen"
And ModelPublisher.MISTRAL should equal "ModelPublisherMistral"
@unit @enums
Scenario: ModelPublisher enum is string-based
Given I have a ModelPublisher enum value
When I convert ModelPublisher.OPENAI to string
Then it should be a string type
And it should equal "ModelPublisherOpenAI"
@unit @enums
Scenario: ModelPublisher enum membership check
Given I import the ModelPublisher enum
When I check enum membership
Then "ModelPublisherOpenAI" should be a valid ModelPublisher value
And "InvalidPublisher" should not be a valid ModelPublisher value
@unit @enums
Scenario: ModelPublisher enum iteration
Given I import the ModelPublisher enum
When I iterate over all ModelPublisher values
Then I should get 7 enum members
And each member should be a ModelPublisher instance
@unit @enums
Scenario: ModelErrKind enum has all expected values
Given I import the ModelErrKind enum
When I check all ModelErrKind values
Then ModelErrKind.OVERLOADED should equal "ErrOverloaded"
And ModelErrKind.CONTEXT_TOO_LONG should equal "ErrContextTooLong"
And ModelErrKind.RATE_LIMITED should equal "ErrRateLimited"
And ModelErrKind.SUBSCRIPTION_QUOTA_EXHAUSTED should equal "ErrSubscriptionQuotaExhausted"
And ModelErrKind.OTHER should equal "ErrOther"
And ModelErrKind.CACHE_SUPPORT should equal "ErrCacheSupport"
@unit @enums
Scenario: ModelErrKind enum is string-based
Given I have a ModelErrKind enum value
When I convert ModelErrKind.RATE_LIMITED to string
Then it should be a string type
And it should equal "ErrRateLimited"
@unit @enums
Scenario: ModelErrKind enum membership check
Given I import the ModelErrKind enum
When I check enum membership
Then "ErrOverloaded" should be a valid ModelErrKind value
And "InvalidError" should not be a valid ModelErrKind value
@unit @enums
Scenario: ModelErrKind enum iteration
Given I import the ModelErrKind enum
When I iterate over all ModelErrKind values
Then I should get 6 enum members
And each member should be a ModelErrKind instance
@unit @enums
Scenario: FallbackType enum has all expected values
Given I import the FallbackType enum
When I check all FallbackType values
Then FallbackType.ERROR should equal "FallbackTypeError"
And FallbackType.CONTEXT should equal "FallbackTypeContext"
And FallbackType.PROVIDER should equal "FallbackTypeProvider"
@unit @enums
Scenario: FallbackType enum is string-based
Given I have a FallbackType enum value
When I convert FallbackType.ERROR to string
Then it should be a string type
And it should equal "FallbackTypeError"
@unit @enums
Scenario: FallbackType enum membership check
Given I import the FallbackType enum
When I check enum membership
Then "FallbackTypeError" should be a valid FallbackType value
And "InvalidFallback" should not be a valid FallbackType value
@unit @enums
Scenario: FallbackType enum iteration
Given I import the FallbackType enum
When I iterate over all FallbackType values
Then I should get 3 enum members
And each member should be a FallbackType instance
@unit @enums
Scenario: ModelProvider enum has all expected values
Given I import the ModelProvider enum
When I check all ModelProvider values
Then ModelProvider.OPENROUTER should equal "ModelProviderOpenRouter"
And ModelProvider.OPENAI should equal "ModelProviderOpenAI"
And ModelProvider.ANTHROPIC should equal "ModelProviderAnthropic"
And ModelProvider.ANTHROPIC_CLAUDE_MAX should equal "ModelProviderAnthropicClaudeMax"
And ModelProvider.GOOGLE_AI_STUDIO should equal "ModelProviderGoogleAIStudio"
And ModelProvider.GOOGLE_VERTEX should equal "ModelProviderGoogleVertex"
And ModelProvider.AZURE_OPENAI should equal "ModelProviderAzureOpenAI"
And ModelProvider.DEEPSEEK should equal "ModelProviderDeepSeek"
And ModelProvider.PERPLEXITY should equal "ModelProviderPerplexity"
And ModelProvider.AMAZON_BEDROCK should equal "ModelProviderAmazonBedrock"
@unit @enums
Scenario: ModelProvider enum is string-based
Given I have a ModelProvider enum value
When I convert ModelProvider.OPENAI to string
Then it should be a string type
And it should equal "ModelProviderOpenAI"
@unit @enums
Scenario: ModelProvider enum membership check
Given I import the ModelProvider enum
When I check enum membership
Then "ModelProviderOpenAI" should be a valid ModelProvider value
And "InvalidProvider" should not be a valid ModelProvider value
@unit @enums
Scenario: ModelProvider enum iteration
Given I import the ModelProvider enum
When I iterate over all ModelProvider values
Then I should get 10 enum members
And each member should be a ModelProvider instance
@unit @enums
Scenario: Enum value comparison
Given I have ModelPublisher enum values
When I compare enum values
Then ModelPublisher.OPENAI should equal ModelPublisher.OPENAI
And ModelPublisher.OPENAI should not equal ModelPublisher.ANTHROPIC
@unit @enums
Scenario: Enum name attribute access
Given I import the ModelPublisher enum
When I access the name attribute of ModelPublisher.OPENAI
Then the name should be "OPENAI"
@unit @enums
Scenario: Enum value attribute access
Given I import the ModelPublisher enum
When I access the value attribute of ModelPublisher.OPENAI
Then the value should be "ModelPublisherOpenAI"
@unit @enums
Scenario: Creating enum from string value
Given I import the ModelProvider enum
When I create ModelProvider from value "ModelProviderOpenAI"
Then I should get ModelProvider.OPENAI
@unit @enums
Scenario: Enum hash consistency
Given I have ModelErrKind enum values
When I use enum values as dictionary keys
Then the enum values should work as dictionary keys
And the hash should be consistent
@unit @enums
Scenario: Enum string representation
Given I have a FallbackType enum value
When I get the string representation
Then repr should contain "FallbackType.ERROR"
And str should equal "FallbackTypeError"