agent_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package kubernetes_test
  2. import (
  3. "testing"
  4. "github.com/porter-dev/porter/internal/kubernetes"
  5. "k8s.io/apimachinery/pkg/api/meta"
  6. "k8s.io/apimachinery/pkg/runtime"
  7. "k8s.io/client-go/discovery"
  8. "k8s.io/client-go/rest"
  9. "k8s.io/client-go/tools/clientcmd"
  10. v1 "k8s.io/api/core/v1"
  11. metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  12. )
  13. type fakeRESTClientGetter struct{}
  14. func (f *fakeRESTClientGetter) ToRESTConfig() (*rest.Config, error) {
  15. return nil, nil
  16. }
  17. func (f *fakeRESTClientGetter) ToRawKubeConfigLoader() clientcmd.ClientConfig {
  18. return nil
  19. }
  20. func (f *fakeRESTClientGetter) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error) {
  21. return nil, nil
  22. }
  23. func (f *fakeRESTClientGetter) ToRESTMapper() (meta.RESTMapper, error) {
  24. return nil, nil
  25. }
  26. func newAgentFixture(t *testing.T, objects ...runtime.Object) *kubernetes.Agent {
  27. t.Helper()
  28. return kubernetes.GetAgentTesting(objects...)
  29. }
  30. func TestOutOfClusterConfig(t *testing.T) {
  31. k8sAgent := newAgentFixture(t, &v1.Namespace{
  32. ObjectMeta: metav1.ObjectMeta{
  33. Name: "test-namespace-0",
  34. },
  35. }, &v1.Namespace{
  36. ObjectMeta: metav1.ObjectMeta{
  37. Name: "test-namespace-1",
  38. },
  39. })
  40. namespaces, err := k8sAgent.ListNamespaces()
  41. if err != nil {
  42. t.Fatalf(err.Error())
  43. }
  44. names := []string{"test-namespace-0", "test-namespace-1"}
  45. for i, ns := range namespaces.Items {
  46. if names[i] != ns.Name {
  47. t.Errorf("Namespace names do not match: expected %s, got %s\n", names[i], ns.Name)
  48. }
  49. }
  50. }