mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-02-21 18:37:26 +08:00
69 lines
4.4 KiB
Go
69 lines
4.4 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestEngineConfigWithDefaults(t *testing.T) {
|
|
// Test case 1: Empty config should be populated with all defaults
|
|
emptyConfig := EngineConfig{}
|
|
withDefaults := emptyConfig.WithDefaults()
|
|
|
|
// Verify all default values
|
|
assert.Equal(t, defaultMinimumPeersRequired, withDefaults.MinimumPeersRequired, "MinimumPeersRequired should be set to default")
|
|
assert.Equal(t, defaultDataWorkerBaseListenMultiaddr, withDefaults.DataWorkerBaseListenMultiaddr, "DataWorkerBaseListenMultiaddr should be set to default")
|
|
assert.Equal(t, defaultDataWorkerBaseP2PPort, withDefaults.DataWorkerBaseP2PPort, "DataWorkerBaseP2PPort should be set to default")
|
|
assert.Equal(t, defaultDataWorkerBaseStreamPort, withDefaults.DataWorkerBaseStreamPort, "DataWorkerBaseStreamPort should be set to default")
|
|
assert.Equal(t, defaultDataWorkerMemoryLimit, withDefaults.DataWorkerMemoryLimit, "DataWorkerMemoryLimit should be set to default")
|
|
assert.Equal(t, defaultSyncTimeout, withDefaults.SyncTimeout, "SyncTimeout should be set to default")
|
|
assert.Equal(t, defaultSyncCandidates, withDefaults.SyncCandidates, "SyncCandidates should be set to default")
|
|
assert.Equal(t, defaultRewardStrategy, withDefaults.RewardStrategy, "RewardStrategy should be set to default")
|
|
|
|
// Test message limits defaults
|
|
assert.Equal(t, defaultSyncMessageReceiveLimit, withDefaults.SyncMessageLimits.MaxRecvMsgSize, "SyncMessageLimits.MaxRecvMsgSize should be set to default")
|
|
assert.Equal(t, defaultSyncMessageSendLimit, withDefaults.SyncMessageLimits.MaxSendMsgSize, "SyncMessageLimits.MaxSendMsgSize should be set to default")
|
|
|
|
// Test frame publish defaults
|
|
assert.Equal(t, "full", withDefaults.FramePublish.Mode, "FramePublish.Mode should be set to default")
|
|
assert.Equal(t, 1*1024*1024, withDefaults.FramePublish.Threshold, "FramePublish.Threshold should be set to default")
|
|
assert.Equal(t, "reed-solomon", withDefaults.FramePublish.Fragmentation.Algorithm, "FramePublish.Fragmentation.Algorithm should be set to default")
|
|
assert.Equal(t, 224, withDefaults.FramePublish.Fragmentation.ReedSolomon.DataShards, "FramePublish.Fragmentation.ReedSolomon.DataShards should be set to default")
|
|
assert.Equal(t, 32, withDefaults.FramePublish.Fragmentation.ReedSolomon.ParityShards, "FramePublish.Fragmentation.ReedSolomon.ParityShards should be set to default")
|
|
|
|
// Test case 2: Config with prior default DataWorkerBaseListenMultiaddr should be updated to new default
|
|
priorDefaultConfig := EngineConfig{
|
|
DataWorkerBaseListenMultiaddr: priorDefaultDataWorkerBaseListenMultiaddr,
|
|
}
|
|
updatedConfig := priorDefaultConfig.WithDefaults()
|
|
|
|
// Verify the specific field is updated to the new default
|
|
assert.Equal(t, defaultDataWorkerBaseListenMultiaddr, updatedConfig.DataWorkerBaseListenMultiaddr,
|
|
"DataWorkerBaseListenMultiaddr should be updated from prior default to new default")
|
|
|
|
// Test case 3: Config with custom values should keep them after WithDefaults
|
|
customConfig := EngineConfig{
|
|
MinimumPeersRequired: 10,
|
|
DataWorkerBaseListenMultiaddr: "/ip4/192.168.1.1/tcp/%d", // Custom value (not prior default)
|
|
DataWorkerBaseP2PPort: 55000,
|
|
DataWorkerBaseStreamPort: 65000,
|
|
DataWorkerMemoryLimit: 2000 * 1024 * 1024,
|
|
SyncTimeout: 10 * time.Second,
|
|
SyncCandidates: 16,
|
|
RewardStrategy: "data-greedy",
|
|
}
|
|
preserved := customConfig.WithDefaults()
|
|
|
|
// Verify custom values are preserved
|
|
assert.Equal(t, 10, preserved.MinimumPeersRequired, "MinimumPeersRequired custom value should be preserved")
|
|
assert.Equal(t, "/ip4/192.168.1.1/tcp/%d", preserved.DataWorkerBaseListenMultiaddr, "DataWorkerBaseListenMultiaddr custom value should be preserved")
|
|
assert.Equal(t, uint16(55000), preserved.DataWorkerBaseP2PPort, "DataWorkerBaseP2PPort custom value should be preserved")
|
|
assert.Equal(t, uint16(65000), preserved.DataWorkerBaseStreamPort, "DataWorkerBaseStreamPort custom value should be preserved")
|
|
assert.Equal(t, int64(2000*1024*1024), preserved.DataWorkerMemoryLimit, "DataWorkerMemoryLimit custom value should be preserved")
|
|
assert.Equal(t, 10*time.Second, preserved.SyncTimeout, "SyncTimeout custom value should be preserved")
|
|
assert.Equal(t, 16, preserved.SyncCandidates, "SyncCandidates custom value should be preserved")
|
|
assert.Equal(t, "data-greedy", preserved.RewardStrategy, "RewardStrategy custom value should be preserved")
|
|
}
|