...

Source file src/edge-infra.dev/pkg/edge/datasync/internal/config/config_test.go

Documentation: edge-infra.dev/pkg/edge/datasync/internal/config

     1  package config_test
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  
     9  	"edge-infra.dev/pkg/edge/datasync/internal/config"
    10  	"edge-infra.dev/pkg/edge/datasync/internal/config/fake"
    11  )
    12  
    13  func TestValidate(t *testing.T) {
    14  	err := config.ValidateConfiguration()
    15  	assert.Error(t, err)
    16  	assert.Equal(t, "missing the following environment variables: ORGANIZATION_ID, ORGANIZATION_NAME, SITE_ID, SITE_NAME, TARGET_SETTINGS", err.Error())
    17  }
    18  
    19  func TestGetRouteConfig(t *testing.T) {
    20  	fake.SetEnv()
    21  
    22  	tlog := config.GetRouteConfig("tlog", fake.InternalConfig)
    23  	assert.Equal(t, "tlog", tlog.Type)
    24  	assert.Equal(t, "tlog", tlog.Route)
    25  	assert.Equal(t, "tlog", tlog.Topic)
    26  	assert.Equal(t, 10, tlog.BulkSize)
    27  	assert.Equal(t, true, tlog.Compression)
    28  	assert.Equal(t, false, tlog.Signing)
    29  
    30  	audit := config.GetRouteConfig("audit", fake.InternalConfig)
    31  	assert.Equal(t, "audit", audit.Type)
    32  	assert.Equal(t, "public", audit.Route)
    33  	assert.Equal(t, "public", audit.Topic)
    34  	assert.Equal(t, 20, audit.BulkSize)
    35  	assert.Equal(t, true, audit.Compression)
    36  	assert.Equal(t, false, audit.Signing)
    37  
    38  	unknown := config.GetRouteConfig("unknown-message-type", fake.InternalConfig)
    39  	assert.Equal(t, "unknown-message-type", unknown.Type)
    40  	assert.Equal(t, "public", unknown.Route)
    41  	assert.Equal(t, "public", unknown.Topic)
    42  	assert.Equal(t, 20, unknown.BulkSize)
    43  	assert.Equal(t, false, unknown.Compression)
    44  	assert.Equal(t, false, unknown.Signing)
    45  }
    46  
    47  func TestAvailableRoutesConfig(t *testing.T) {
    48  	fake.SetEnv()
    49  	availableRoutes := config.GetRoutes(fake.InternalConfig)
    50  	assert.NotEmpty(t, availableRoutes)
    51  	assert.Len(t, availableRoutes, 2)
    52  	assert.Equal(t, "tlog", availableRoutes[0])
    53  	assert.Equal(t, "public", availableRoutes[1])
    54  }
    55  
    56  func TestBulkSizesConfig(t *testing.T) {
    57  	fake.SetEnv()
    58  	bulkSizes := config.GetBulkSizes(fake.InternalConfig)
    59  	assert.Len(t, bulkSizes, 2)
    60  	assert.Equal(t, 10, bulkSizes["tlog"])
    61  	assert.Equal(t, 20, bulkSizes["public"])
    62  }
    63  
    64  func TestTopicConfig(t *testing.T) {
    65  	fake.SetEnv()
    66  	topics := config.GetTopics(fake.InternalConfig)
    67  	assert.Len(t, topics, 2)
    68  	assert.Equal(t, "tlog", topics["tlog"])
    69  	assert.Equal(t, "public", topics["public"])
    70  }
    71  
    72  func TestOutboxPathConfig(t *testing.T) {
    73  	fake.SetEnv()
    74  	assert.Equal(t, "testdata/outbox", config.GetOutboxPath(fake.InternalConfig))
    75  }
    76  
    77  func TestPartitionsConfigWithTrailingSlash(t *testing.T) {
    78  	assert.Equal(t, "/app/cmd/data-sync-messaging/outbox", config.GetOutboxPath(fake.SlashConfig))
    79  }
    80  
    81  func TestGetTargetConfig(t *testing.T) {
    82  	fake.SetEnv()
    83  	assert.Equal(t, "kafka", config.GetTarget())
    84  }
    85  
    86  func TestGetTargetDefaultConfig(t *testing.T) {
    87  	assert.Equal(t, "kafka", config.GetTarget())
    88  }
    89  
    90  func TestGetKafkaSettingsConfig(t *testing.T) {
    91  	fake.SetEnv()
    92  
    93  	kafkaSettings, err := config.GetKafkaSettings()
    94  	assert.NoError(t, err)
    95  	assert.Equal(t, "redpanda.redpanda.svc.cluster.local:9092", kafkaSettings.KafkaEndpoint)
    96  	assert.Equal(t, "SSL", kafkaSettings.SecurityProtocol)
    97  	assert.Equal(t, "KeystoreLocation", kafkaSettings.KeystoreLocation)
    98  	assert.Equal(t, "KeystorePassword", kafkaSettings.KeystorePassword)
    99  	assert.Equal(t, "CaLocation", kafkaSettings.CaLocation)
   100  	assert.Equal(t, false, kafkaSettings.EnableCertVerification)
   101  	assert.Equal(t, "none", kafkaSettings.IdentificationAlgorithm)
   102  	assert.Equal(t, int32(10485760), kafkaSettings.MessageMaxBytes)
   103  }
   104  
   105  func TestGetPubSubSettingsConfig(t *testing.T) {
   106  	os.Setenv("TARGET", "pubsub")
   107  	os.Setenv("TARGET_SETTINGS", `{"project_id": "proj-01"}`)
   108  
   109  	pubsubSettings, err := config.GetPubSubSettings()
   110  	assert.NoError(t, err)
   111  	assert.Equal(t, "proj-01", pubsubSettings.ProjectID)
   112  }
   113  

View as plain text