63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
// Copyright 2016 The Chihaya Authors. All rights reserved.
|
|
// Use of this source code is governed by the BSD 2-Clause license,
|
|
// which can be found in the LICENSE file.
|
|
|
|
package deniability
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"gopkg.in/yaml.v2"
|
|
|
|
"github.com/chihaya/chihaya"
|
|
)
|
|
|
|
type configTestData struct {
|
|
modifyProbability string
|
|
maxNewPeers string
|
|
prefix string
|
|
minPort string
|
|
maxPort string
|
|
err bool
|
|
expected Config
|
|
}
|
|
|
|
var (
|
|
configTemplate = `
|
|
name: foo
|
|
config:
|
|
modify_response_probability: %s
|
|
max_random_peers: %s
|
|
prefix: %s
|
|
min_port: %s
|
|
max_port: %s`
|
|
|
|
configData = []configTestData{
|
|
{"1.0", "5", "abc", "2000", "3000", false, Config{1.0, 5, "abc", 2000, 3000}},
|
|
{"a", "a", "12", "a", "a", true, Config{}},
|
|
}
|
|
)
|
|
|
|
func TestNewConfig(t *testing.T) {
|
|
var mwconfig chihaya.MiddlewareConfig
|
|
|
|
cfg, err := newConfig(mwconfig)
|
|
assert.Nil(t, err)
|
|
assert.NotNil(t, cfg)
|
|
|
|
for _, test := range configData {
|
|
config := fmt.Sprintf(configTemplate, test.modifyProbability, test.maxNewPeers, test.prefix, test.minPort, test.maxPort)
|
|
err = yaml.Unmarshal([]byte(config), &mwconfig)
|
|
assert.Nil(t, err)
|
|
|
|
cfg, err = newConfig(mwconfig)
|
|
if test.err {
|
|
assert.NotNil(t, err)
|
|
continue
|
|
}
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, test.expected, *cfg)
|
|
}
|
|
}
|