| Index: third_party/protobuf/examples/add_person_test.go
|
| diff --git a/third_party/protobuf/examples/add_person_test.go b/third_party/protobuf/examples/add_person_test.go
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0507db6fc1471138f6055bf74135b30086dfc37a
|
| --- /dev/null
|
| +++ b/third_party/protobuf/examples/add_person_test.go
|
| @@ -0,0 +1,58 @@
|
| +package main
|
| +
|
| +import (
|
| + "strings"
|
| + "testing"
|
| +
|
| + "github.com/golang/protobuf/proto"
|
| + pb "github.com/google/protobuf/examples/tutorial"
|
| +)
|
| +
|
| +func TestPromptForAddressReturnsAddress(t *testing.T) {
|
| + in := `12345
|
| +Example Name
|
| +name@example.com
|
| +123-456-7890
|
| +home
|
| +222-222-2222
|
| +mobile
|
| +111-111-1111
|
| +work
|
| +777-777-7777
|
| +unknown
|
| +
|
| +`
|
| + got, err := promptForAddress(strings.NewReader(in))
|
| + if err != nil {
|
| + t.Fatalf("promptForAddress(%q) had unexpected error: %s", in, err.Error())
|
| + }
|
| + if got.Id != 12345 {
|
| + t.Errorf("promptForAddress(%q) got %d, want ID %d", in, got.Id, 12345)
|
| + }
|
| + if got.Name != "Example Name" {
|
| + t.Errorf("promptForAddress(%q) => want name %q, got %q", "Example Name", got.Name)
|
| + }
|
| + if got.Email != "name@example.com" {
|
| + t.Errorf("promptForAddress(%q) => want email %q, got %q", "name@example.com", got.Email)
|
| + }
|
| +
|
| + want := []*pb.Person_PhoneNumber{
|
| + {Number: "123-456-7890", Type: pb.Person_HOME},
|
| + {Number: "222-222-2222", Type: pb.Person_MOBILE},
|
| + {Number: "111-111-1111", Type: pb.Person_WORK},
|
| + {Number: "777-777-7777", Type: pb.Person_MOBILE},
|
| + }
|
| + if len(got.Phones) != len(want) {
|
| + t.Errorf("want %d phone numbers, got %d", len(want), len(got.Phones))
|
| + }
|
| + phones := len(got.Phones)
|
| + if phones > len(want) {
|
| + phones = len(want)
|
| + }
|
| + for i := 0; i < phones; i++ {
|
| + if !proto.Equal(got.Phones[i], want[i]) {
|
| + t.Errorf("want phone %q, got %q", *want[i], *got.Phones[i])
|
| + }
|
| +
|
| + }
|
| +}
|
|
|