mirror of
https://github.com/containers/kubernetes-mcp-server.git
synced 2025-10-23 01:22:57 +03:00
* refactor(kubernetes): keep Provider as only external Kubernetes interface Initial phase to unify-merge the Provider interface with the Manager struct. - Renamed ManagerProvider to Provider (i.e. kubernets.Provider) - Moved Manager related logic to specific files - Exposed relevant method through Provider interface (GetDerivedKubernetes, IsOpenShift, VerifyToken) Signed-off-by: Marc Nuri <marc@marcnuri.com> * Update pkg/kubernetes/provider_kubeconfig.go Co-authored-by: Calum Murray <cmurray@redhat.com> Signed-off-by: Marc Nuri <marc@marcnuri.com> --------- Signed-off-by: Marc Nuri <marc@marcnuri.com> Co-authored-by: Calum Murray <cmurray@redhat.com>
57 lines
1.9 KiB
Go
57 lines
1.9 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/containers/kubernetes-mcp-server/pkg/config"
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type ProviderRegistryTestSuite struct {
|
|
BaseProviderSuite
|
|
}
|
|
|
|
func (s *ProviderRegistryTestSuite) TestRegisterProvider() {
|
|
s.Run("With no pre-existing provider, registers the provider", func() {
|
|
RegisterProvider("test-strategy", func(m *Manager, cfg *config.StaticConfig) (Provider, error) {
|
|
return nil, nil
|
|
})
|
|
_, exists := providerFactories["test-strategy"]
|
|
s.True(exists, "Provider should be registered")
|
|
})
|
|
s.Run("With pre-existing provider, panics", func() {
|
|
RegisterProvider("test-pre-existent", func(m *Manager, cfg *config.StaticConfig) (Provider, error) {
|
|
return nil, nil
|
|
})
|
|
s.Panics(func() {
|
|
RegisterProvider("test-pre-existent", func(m *Manager, cfg *config.StaticConfig) (Provider, error) {
|
|
return nil, nil
|
|
})
|
|
}, "Registering a provider with an existing strategy should panic")
|
|
})
|
|
}
|
|
|
|
func (s *ProviderRegistryTestSuite) TestGetRegisteredStrategies() {
|
|
s.Run("With no registered providers, returns empty list", func() {
|
|
providerFactories = make(map[string]ProviderFactory)
|
|
strategies := GetRegisteredStrategies()
|
|
s.Empty(strategies, "No strategies should be registered")
|
|
})
|
|
s.Run("With multiple registered providers, returns sorted list", func() {
|
|
providerFactories = make(map[string]ProviderFactory)
|
|
RegisterProvider("foo-strategy", func(m *Manager, cfg *config.StaticConfig) (Provider, error) {
|
|
return nil, nil
|
|
})
|
|
RegisterProvider("bar-strategy", func(m *Manager, cfg *config.StaticConfig) (Provider, error) {
|
|
return nil, nil
|
|
})
|
|
strategies := GetRegisteredStrategies()
|
|
expected := []string{"bar-strategy", "foo-strategy"}
|
|
s.Equal(expected, strategies, "Strategies should be sorted alphabetically")
|
|
})
|
|
}
|
|
|
|
func TestProviderRegistry(t *testing.T) {
|
|
suite.Run(t, new(ProviderRegistryTestSuite))
|
|
}
|