39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package worker
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
core "git.yuntuo.hk/k2safe/orbit/model"
|
|
)
|
|
|
|
func TestRegistrationAndSecretBoundaries(t *testing.T) {
|
|
secret, digest, err := NewSecret()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
parsed, err := SecretDigest(secret)
|
|
if err != nil || parsed != digest {
|
|
t.Fatal("secret round trip")
|
|
}
|
|
for _, bad := range []string{secret + "=", secret + "\n", strings.Repeat("!", 43), secret[:42]} {
|
|
if _, err := SecretDigest(bad); err == nil {
|
|
t.Fatal("malformed secret accepted")
|
|
}
|
|
}
|
|
input := ConnectInput{InstanceID: core.ID(strings.Repeat("1", 32)), InstanceSecret: secret, QueueID: core.ID(strings.Repeat("2", 32)), Capacity: 1, Capabilities: []Capability{{"z", "v1", "v1"}, {"a", "v1", "v1"}}}
|
|
normalized, err := NormalizeConnect(input)
|
|
if err != nil || normalized.Capabilities[0].Handler != "a" || input.Capabilities[0].Handler != "z" {
|
|
t.Fatalf("normalization changed caller input: %v", err)
|
|
}
|
|
input.Capabilities = append(input.Capabilities, input.Capabilities[0])
|
|
if _, err := NormalizeConnect(input); err == nil {
|
|
t.Fatal("duplicate capability accepted")
|
|
}
|
|
input = normalized
|
|
input.Capacity = 257
|
|
if _, err := NormalizeConnect(input); err == nil {
|
|
t.Fatal("excess capacity accepted")
|
|
}
|
|
}
|