| Index: third_party/protobuf/examples/list_people_test.go
|
| diff --git a/third_party/protobuf/examples/list_people_test.go b/third_party/protobuf/examples/list_people_test.go
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..87d6ad6ec671ce61b216f387d452e46c9c340eca
|
| --- /dev/null
|
| +++ b/third_party/protobuf/examples/list_people_test.go
|
| @@ -0,0 +1,120 @@
|
| +package main
|
| +
|
| +import (
|
| + "bytes"
|
| + "strings"
|
| + "testing"
|
| +
|
| + pb "github.com/google/protobuf/examples/tutorial"
|
| +)
|
| +
|
| +func TestWritePersonWritesPerson(t *testing.T) {
|
| + buf := new(bytes.Buffer)
|
| + // [START populate_proto]
|
| + p := pb.Person{
|
| + Id: 1234,
|
| + Name: "John Doe",
|
| + Email: "jdoe@example.com",
|
| + Phones: []*pb.Person_PhoneNumber{
|
| + {Number: "555-4321", Type: pb.Person_HOME},
|
| + },
|
| + }
|
| + // [END populate_proto]
|
| + writePerson(buf, &p)
|
| + got := buf.String()
|
| + want := `Person ID: 1234
|
| + Name: John Doe
|
| + E-mail address: jdoe@example.com
|
| + Home phone #: 555-4321
|
| +`
|
| + if got != want {
|
| + t.Errorf("writePerson(%s) =>\n\t%q, want %q", p.String(), got, want)
|
| + }
|
| +}
|
| +
|
| +func TestListPeopleWritesList(t *testing.T) {
|
| + buf := new(bytes.Buffer)
|
| + in := pb.AddressBook{[]*pb.Person{
|
| + {
|
| + Name: "John Doe",
|
| + Id: 101,
|
| + Email: "john@example.com",
|
| + },
|
| + {
|
| + Name: "Jane Doe",
|
| + Id: 102,
|
| + },
|
| + {
|
| + Name: "Jack Doe",
|
| + Id: 201,
|
| + Email: "jack@example.com",
|
| + Phones: []*pb.Person_PhoneNumber{
|
| + {Number: "555-555-5555", Type: pb.Person_WORK},
|
| + },
|
| + },
|
| + {
|
| + Name: "Jack Buck",
|
| + Id: 301,
|
| + Email: "buck@example.com",
|
| + Phones: []*pb.Person_PhoneNumber{
|
| + {Number: "555-555-0000", Type: pb.Person_HOME},
|
| + {Number: "555-555-0001", Type: pb.Person_MOBILE},
|
| + {Number: "555-555-0002", Type: pb.Person_WORK},
|
| + },
|
| + },
|
| + {
|
| + Name: "Janet Doe",
|
| + Id: 1001,
|
| + Email: "janet@example.com",
|
| + Phones: []*pb.Person_PhoneNumber{
|
| + {Number: "555-777-0000"},
|
| + {Number: "555-777-0001", Type: pb.Person_HOME},
|
| + },
|
| + },
|
| + }}
|
| + listPeople(buf, &in)
|
| + want := strings.Split(`Person ID: 101
|
| + Name: John Doe
|
| + E-mail address: john@example.com
|
| +Person ID: 102
|
| + Name: Jane Doe
|
| +Person ID: 201
|
| + Name: Jack Doe
|
| + E-mail address: jack@example.com
|
| + Work phone #: 555-555-5555
|
| +Person ID: 301
|
| + Name: Jack Buck
|
| + E-mail address: buck@example.com
|
| + Home phone #: 555-555-0000
|
| + Mobile phone #: 555-555-0001
|
| + Work phone #: 555-555-0002
|
| +Person ID: 1001
|
| + Name: Janet Doe
|
| + E-mail address: janet@example.com
|
| + Mobile phone #: 555-777-0000
|
| + Home phone #: 555-777-0001
|
| +`, "\n")
|
| + got := strings.Split(buf.String(), "\n")
|
| + if len(got) != len(want) {
|
| + t.Errorf(
|
| + "listPeople(%s) =>\n\t%q has %d lines, want %d",
|
| + in.String(),
|
| + buf.String(),
|
| + len(got),
|
| + len(want))
|
| + }
|
| + lines := len(got)
|
| + if lines > len(want) {
|
| + lines = len(want)
|
| + }
|
| + for i := 0; i < lines; i++ {
|
| + if got[i] != want[i] {
|
| + t.Errorf(
|
| + "listPeople(%s) =>\n\tline %d %q, want %q",
|
| + in.String(),
|
| + i,
|
| + got[i],
|
| + want[i])
|
| + }
|
| + }
|
| +}
|
|
|