| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | 
							- package main
 
- import (
 
- 	"bytes"
 
- 	"strings"
 
- 	"testing"
 
- 	pb "github.com/protocolbuffers/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{People: []*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])
 
- 		}
 
- 	}
 
- }
 
 
  |