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]) |
+ } |
+ |
+ } |
+} |