12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package main
- import (
- "strings"
- "testing"
- "github.com/golang/protobuf/proto"
- pb "github.com/protocolbuffers/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", in, "Example Name", got.Name)
- }
- if got.Email != "name@example.com" {
- t.Errorf("promptForAddress(%q) => want email %q, got %q", in, "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])
- }
- }
- }
|