173 lines
6.8 KiB
Gherkin
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" |