source_test.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package exporter
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/opencost/opencost/core/pkg/clusters"
  6. )
  7. type MockClusterInfoProvider struct{}
  8. func NewMockClusterInfoProvider() clusters.ClusterInfoProvider {
  9. return new(MockClusterInfoProvider)
  10. }
  11. func (m *MockClusterInfoProvider) GetClusterInfo() map[string]string {
  12. return map[string]string{
  13. clusters.ClusterInfoIdKey: "test-cluster-id",
  14. clusters.ClusterInfoNameKey: "test-cluster-name",
  15. clusters.ClusterInfoVersionKey: "test-cluster-version",
  16. clusters.ClusterInfoRegionKey: "test-cluster-region",
  17. clusters.ClusterInfoProviderKey: "test-cluster-provider",
  18. }
  19. }
  20. func TestClusterInfoProvider(t *testing.T) {
  21. t.Parallel()
  22. provider := NewMockClusterInfoProvider()
  23. clusterInfoMetaDataProvider := NewClusterInfoMetadataProvider(provider)
  24. heartbeatSrc := NewHeartbeatSource("test-app", "v0.0.1", clusterInfoMetaDataProvider)
  25. hb := heartbeatSrc.Make(time.Now().UTC().Truncate(time.Second))
  26. md := hb.Metadata
  27. if md == nil {
  28. t.Errorf("Expected metadata to be non-nil, got nil")
  29. }
  30. if md[clusters.ClusterInfoIdKey] != "test-cluster-id" {
  31. t.Errorf("Expected cluster ID to be 'test-cluster-id', got '%s'", md[clusters.ClusterInfoIdKey])
  32. }
  33. if md[clusters.ClusterInfoNameKey] != "test-cluster-name" {
  34. t.Errorf("Expected cluster name to be 'test-cluster-name', got '%s'", md[clusters.ClusterInfoNameKey])
  35. }
  36. if md[clusters.ClusterInfoVersionKey] != "test-cluster-version" {
  37. t.Errorf("Expected cluster version to be 'test-cluster-version', got '%s'", md[clusters.ClusterInfoVersionKey])
  38. }
  39. if md[clusters.ClusterInfoRegionKey] != "test-cluster-region" {
  40. t.Errorf("Expected cluster region to be 'test-cluster-region', got '%s'", md[clusters.ClusterInfoRegionKey])
  41. }
  42. if md[clusters.ClusterInfoProviderKey] != "test-cluster-provider" {
  43. t.Errorf("Expected cluster provider to be 'test-cluster-provider', got '%s'", md[clusters.ClusterInfoProviderKey])
  44. }
  45. if heartbeatSrc.Name() != "heartbeat-source" {
  46. t.Errorf("Expected source name to be 'heartbeat-source', got '%s'", heartbeatSrc.Name())
  47. }
  48. }