1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- // Copyright 2018 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package protoreflect
- import "testing"
- func TestNameIsValid(t *testing.T) {
- tests := []struct {
- in Name
- want bool
- }{
- {"", false},
- {"a", true},
- {".", false},
- {"_", true}, // odd, but permitted by protoc
- {".foo", false},
- {"foo.", false},
- {"foo", true},
- {"one1_two2_three3", true},
- {"1one", false},
- }
- for _, tt := range tests {
- if got := tt.in.IsValid(); got != tt.want {
- t.Errorf("Name(%q).IsValid() = %v, want %v", tt.in, got, tt.want)
- }
- }
- }
- func TestFullNameIsValid(t *testing.T) {
- tests := []struct {
- in FullName
- want bool
- }{
- {"", false},
- {"a", true},
- {"a.b", true},
- {"a.b.c", true},
- {".", false},
- {"_._._", true}, // odd, but permitted by protoc
- {".foo", false},
- {"foo.", false},
- {"foo", true},
- {"one1_two2_three3", true},
- {"one1.two2.three3", true},
- {".one1.two2.three3", false},
- {"one1.two2.three3.", false},
- {"foo.1one", false},
- }
- for _, tt := range tests {
- if got := tt.in.IsValid(); got != tt.want {
- t.Errorf("Name(%q).IsValid() = %v, want %v", tt.in, got, tt.want)
- }
- }
- }
- func TestNameAppend(t *testing.T) {
- tests := []FullName{
- "",
- "a",
- "a.b",
- "a.b.c",
- "one1.two2.three3",
- }
- for _, tt := range tests {
- if got := tt.Parent().Append(tt.Name()); got != tt {
- t.Errorf("FullName.Parent().Append(FullName.Name()) = %q, want %q", got, tt)
- }
- }
- }
|