aboutsummaryrefslogtreecommitdiffhomepage
path: root/csharp/protos/extest/unittest_extras_full.proto
blob: 1b54605376db9b112e1a1214febb544d30d0d6f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
syntax = "proto2";

package protobuf_unittest_extra;

option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
option optimize_for = CODE_SIZE;
option java_package = "com.google.protobuf";

message TestInteropPerson {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
  repeated int32 codes = 10 [packed=true];

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
  
  repeated group Addresses = 5 {
    required string address = 1;
    optional string address2 = 2;
    required string city = 3;
    required string state = 4;
    required fixed32 zip = 5;
  }

  extensions 100 to 199;
}

message  TestInteropEmployeeId {
  required string number = 1;
}
  
extend TestInteropPerson {
  // Note: changed from required to optional, as required fields are not
  // permitted in extensions. (The fact that this was allowed in protogen
  // before was almost certainly a bug.)
  optional TestInteropEmployeeId employee_id = 126;
}

message TestMissingFieldsA {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
  
  message SubA {
    required int32 count = 5;
    repeated string values = 6;
  }
  optional SubA testA = 11;
}

message TestMissingFieldsB {
  required string name = 1;
  required int32 id = 2;
  optional string website = 4;
  
  message SubB {
    repeated string values = 7;
  }
  optional SubB testB = 12;
}