Spaces:
Running
Running
// _ _ | |
// __ _____ __ ___ ___ __ _| |_ ___ | |
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ | |
// \ 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) | |
} | |
}) | |
} | |
} | |