48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
func TestServerPolicyJSONRoundTrip(t *testing.T) {
|
|
in := ServerPolicy{
|
|
MaxAgents: 128,
|
|
LogAgentConnections: true,
|
|
LogShareSubmissions: false,
|
|
LogPoolTraffic: true,
|
|
StrictWalletValidation: true,
|
|
MaxBuildSizeMB: 64,
|
|
PoolReconnectSeconds: 30,
|
|
TripleOnionPolicy: TripleOnionPolicy{
|
|
PatchFirst: true,
|
|
SkipMiningOnHighRisk: true,
|
|
HighRiskThreshold: 50,
|
|
},
|
|
}
|
|
|
|
data, err := json.Marshal(in)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var out ServerPolicy
|
|
if err := json.Unmarshal(data, &out); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if out.MaxAgents != in.MaxAgents ||
|
|
out.LogAgentConnections != in.LogAgentConnections ||
|
|
out.LogShareSubmissions != in.LogShareSubmissions ||
|
|
out.LogPoolTraffic != in.LogPoolTraffic ||
|
|
out.StrictWalletValidation != in.StrictWalletValidation ||
|
|
out.MaxBuildSizeMB != in.MaxBuildSizeMB ||
|
|
out.PoolReconnectSeconds != in.PoolReconnectSeconds {
|
|
t.Fatalf("round-trip mismatch:\n got %+v\n want %+v", out, in)
|
|
}
|
|
if !out.TripleOnionPolicy.PatchFirst ||
|
|
!out.TripleOnionPolicy.SkipMiningOnHighRisk ||
|
|
out.TripleOnionPolicy.HighRiskThreshold != 50 {
|
|
t.Fatalf("triple onion policy round-trip mismatch: %+v", out.TripleOnionPolicy)
|
|
}
|
|
}
|