SemanticSearchPOC / entities /schema /validation_test.go
KevinStephenson
Adding in weaviate code
b110593
raw
history blame
3.57 kB
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ V V / __/ (_| |\ V /| | (_| | || __/
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
// CONTACT: [email protected]
//
package schema
import (
"testing"
)
func TestValidateOKClassName(t *testing.T) {
_, err := ValidateClassName("FooBar")
if err != nil {
t.Fail()
}
_, err = ValidateClassName("FooBar2")
if err != nil {
t.Fail()
}
_, err = ValidateClassName("Foo_______bar__with_numbers___1234567890_and_2")
if err != nil {
t.Fail()
}
_, err = ValidateClassName("C_123456___foo_bar_2")
if err != nil {
t.Fail()
}
_, err = ValidateClassName("NormalClassNameWithNumber1")
if err != nil {
t.Fail()
}
_, err = ValidateClassName("Normal__Class__Name__With__Number__1")
if err != nil {
t.Fail()
}
_, err = ValidateClassName("CClassName")
if err != nil {
t.Fail()
}
}
func TestFailValidateBadClassName(t *testing.T) {
_, err := ValidateClassName("Foo Bar")
if err == nil {
t.Fail()
}
_, err = ValidateClassName("foo")
if err == nil {
t.Fail()
}
_, err = ValidateClassName("fooBar")
if err == nil {
t.Fail()
}
_, err = ValidateClassName("_foo")
if err == nil {
t.Fail()
}
}
func TestValidateOKPropertyName(t *testing.T) {
// valid proper names
_, err := ValidatePropertyName("fooBar")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("fooBar2")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("_fooBar2")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("intField")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("hasAction")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("_foo_bar_2")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("______foo_bar_2")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("___123456___foo_bar_2")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("a_very_Long_property_Name__22_with_numbers_9")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("a_very_Long_property_Name__22_with_numbers_9880888800888800008")
if err != nil {
t.Fail()
}
_, err = ValidatePropertyName("FooBar")
if err != nil {
t.Fail()
}
}
func TestFailValidateBadPropertyName(t *testing.T) {
_, err := ValidatePropertyName("foo Bar")
if err == nil {
t.Fail()
}
_, err = ValidatePropertyName("a_very_Long_property_Name__22_with-dash_9")
if err == nil {
t.Fail()
}
_, err = ValidatePropertyName("1_FooBar")
if err == nil {
t.Fail()
}
}
func TestValidateReservedPropertyName(t *testing.T) {
type args struct {
name string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "Reserved name: _additional",
args: args{
name: "_additional",
},
wantErr: true,
},
{
name: "Reserved name: id",
args: args{
name: "id",
},
wantErr: true,
},
{
name: "Reserved name: _id",
args: args{
name: "_id",
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := ValidateReservedPropertyName(tt.args.name); (err != nil) != tt.wantErr {
t.Errorf("ValidateReservedPropertyName() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}