|
|
@@ -0,0 +1,59 @@
|
|
|
+package exporter
|
|
|
+
|
|
|
+import (
|
|
|
+ "testing"
|
|
|
+ "time"
|
|
|
+
|
|
|
+ "github.com/opencost/opencost/core/pkg/clusters"
|
|
|
+)
|
|
|
+
|
|
|
+type MockClusterInfoProvider struct{}
|
|
|
+
|
|
|
+func NewMockClusterInfoProvider() clusters.ClusterInfoProvider {
|
|
|
+ return new(MockClusterInfoProvider)
|
|
|
+}
|
|
|
+func (m *MockClusterInfoProvider) GetClusterInfo() map[string]string {
|
|
|
+ return map[string]string{
|
|
|
+ clusters.ClusterInfoIdKey: "test-cluster-id",
|
|
|
+ clusters.ClusterInfoNameKey: "test-cluster-name",
|
|
|
+ clusters.ClusterInfoVersionKey: "test-cluster-version",
|
|
|
+ clusters.ClusterInfoRegionKey: "test-cluster-region",
|
|
|
+ clusters.ClusterInfoProviderKey: "test-cluster-provider",
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestClusterInfoProvider(t *testing.T) {
|
|
|
+ t.Parallel()
|
|
|
+
|
|
|
+ provider := NewMockClusterInfoProvider()
|
|
|
+ clusterInfoMetaDataProvider := NewClusterInfoMetadataProvider(provider)
|
|
|
+
|
|
|
+ heartbeatSrc := NewHeartbeatSource("test-app", "v0.0.1", clusterInfoMetaDataProvider)
|
|
|
+
|
|
|
+ hb := heartbeatSrc.Make(time.Now().UTC().Truncate(time.Second))
|
|
|
+
|
|
|
+ md := hb.Metadata
|
|
|
+ if md == nil {
|
|
|
+ t.Errorf("Expected metadata to be non-nil, got nil")
|
|
|
+ }
|
|
|
+
|
|
|
+ if md[clusters.ClusterInfoIdKey] != "test-cluster-id" {
|
|
|
+ t.Errorf("Expected cluster ID to be 'test-cluster-id', got '%s'", md[clusters.ClusterInfoIdKey])
|
|
|
+ }
|
|
|
+ if md[clusters.ClusterInfoNameKey] != "test-cluster-name" {
|
|
|
+ t.Errorf("Expected cluster name to be 'test-cluster-name', got '%s'", md[clusters.ClusterInfoNameKey])
|
|
|
+ }
|
|
|
+ if md[clusters.ClusterInfoVersionKey] != "test-cluster-version" {
|
|
|
+ t.Errorf("Expected cluster version to be 'test-cluster-version', got '%s'", md[clusters.ClusterInfoVersionKey])
|
|
|
+ }
|
|
|
+ if md[clusters.ClusterInfoRegionKey] != "test-cluster-region" {
|
|
|
+ t.Errorf("Expected cluster region to be 'test-cluster-region', got '%s'", md[clusters.ClusterInfoRegionKey])
|
|
|
+ }
|
|
|
+ if md[clusters.ClusterInfoProviderKey] != "test-cluster-provider" {
|
|
|
+ t.Errorf("Expected cluster provider to be 'test-cluster-provider', got '%s'", md[clusters.ClusterInfoProviderKey])
|
|
|
+ }
|
|
|
+
|
|
|
+ if heartbeatSrc.Name() != "heartbeat-source" {
|
|
|
+ t.Errorf("Expected source name to be 'heartbeat-source', got '%s'", heartbeatSrc.Name())
|
|
|
+ }
|
|
|
+}
|