blob: 5cf5705c693d5ace3b176e0195dcbdc56422ec4a [file] [log] [blame]
package validator_test
import (
"github.com/go-chassis/foundation/validator"
"strings"
"testing"
"github.com/apache/servicecomb-kie/pkg/model"
validsvc "github.com/apache/servicecomb-kie/pkg/validator"
"github.com/stretchr/testify/assert"
)
func init() {
if err := validsvc.Init(); err != nil {
panic(err)
}
}
func TestValidate(t *testing.T) {
string32 := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" //32
string128 := string32 + string32 + string32 + string32
kvDoc := &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "",
Value: "a",
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a#",
Value: "a",
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: string128 + "a",
Value: "a",
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "",
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
ValueType: "",
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
ValueType: "text",
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
ValueType: "a",
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Status: "",
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Status: "enabled",
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Status: "a",
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Labels: nil,
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Labels: map[string]string{"a": "a"},
}
assert.NoError(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Labels: map[string]string{
"1": "a",
"2": "a",
"3": "a",
"4": "a",
"5": "a",
"6": "a",
"7": "a", // error
},
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Labels: map[string]string{
"1": "a",
"2": "a",
"3": "a",
"4": "a",
"5": "a",
"6-" + strings.Repeat("x", 31): "a", // error
},
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Labels: map[string]string{
"1": "a",
"2": "a",
"3": "a",
"4": "a",
"5": "a",
"6": "a-" + strings.Repeat("x", 31), // error
},
}
assert.Error(t, validator.Validate(kvDoc))
kvDoc = &model.KVDoc{Project: "a", Domain: "a",
Key: "a",
Value: "a",
Labels: map[string]string{string32 + "a": "a"},
}
assert.Error(t, validator.Validate(kvDoc))
ListKVRe := &model.ListKVRequest{Project: "a", Domain: "a",
Key: "beginWith(a)",
}
assert.NoError(t, validator.Validate(ListKVRe))
ListKVRe = &model.ListKVRequest{Project: "a", Domain: "a",
Key: "beginW(a)",
}
assert.Error(t, validator.Validate(ListKVRe))
ListKVRe = &model.ListKVRequest{Project: "a", Domain: "a",
Key: "beginW()",
}
assert.Error(t, validator.Validate(ListKVRe))
}