// Copyright 2020 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 TestSourcePathString(t *testing.T) { tests := []struct { in SourcePath want string }{ {nil, ""}, {SourcePath{}, ""}, {SourcePath{0}, ".0"}, {SourcePath{1}, ".name"}, {SourcePath{1, 1}, ".name.1"}, {SourcePath{1, 1, -2, 3}, ".name.1.-2.3"}, {SourcePath{3}, ".dependency"}, {SourcePath{3, 0}, ".dependency[0]"}, {SourcePath{3, -1}, ".dependency.-1"}, {SourcePath{3, 1, 2}, ".dependency[1].2"}, {SourcePath{4}, ".message_type"}, {SourcePath{4, 0}, ".message_type[0]"}, {SourcePath{4, -1}, ".message_type.-1"}, {SourcePath{4, 1, 0}, ".message_type[1].0"}, {SourcePath{4, 1, 1}, ".message_type[1].name"}, } for _, tt := range tests { if got := tt.in.String(); got != tt.want { t.Errorf("SourcePath(%d).String() = %v, want %v", tt.in, got, tt.want) } } }