@@ -29,3 +29,104 @@ func TestPayload_NoPanic(t *testing.T) {
29
29
e := & Event {Type : & name , RawPayload : & body }
30
30
e .Payload ()
31
31
}
32
+
33
+ func TestEvent_Marshal (t * testing.T ) {
34
+ testJSONMarshal (t , & Event {}, "{}" )
35
+
36
+ l := make (map [string ]interface {})
37
+ l ["key" ] = "value"
38
+
39
+ jsonMsg , _ := json .Marshal (& l )
40
+
41
+ u := & Event {
42
+ Type : String ("t" ),
43
+ Public : Bool (false ),
44
+ RawPayload : (* json .RawMessage )(& jsonMsg ),
45
+ Repo : & Repository {
46
+ ID : Int64 (1 ),
47
+ URL : String ("s" ),
48
+ Name : String ("n" ),
49
+ },
50
+ Actor : & User {
51
+ Login : String ("l" ),
52
+ ID : Int64 (1 ),
53
+ NodeID : String ("n" ),
54
+ URL : String ("u" ),
55
+ ReposURL : String ("r" ),
56
+ EventsURL : String ("e" ),
57
+ AvatarURL : String ("a" ),
58
+ },
59
+ Org : & Organization {
60
+ BillingEmail : String ("be" ),
61
+ Blog : String ("b" ),
62
+ Company : String ("c" ),
63
+ Email : String ("e" ),
64
+ TwitterUsername : String ("tu" ),
65
+ Location : String ("loc" ),
66
+ Name : String ("n" ),
67
+ Description : String ("d" ),
68
+ IsVerified : Bool (true ),
69
+ HasOrganizationProjects : Bool (true ),
70
+ HasRepositoryProjects : Bool (true ),
71
+ DefaultRepoPermission : String ("drp" ),
72
+ MembersCanCreateRepos : Bool (true ),
73
+ MembersCanCreateInternalRepos : Bool (true ),
74
+ MembersCanCreatePrivateRepos : Bool (true ),
75
+ MembersCanCreatePublicRepos : Bool (false ),
76
+ MembersAllowedRepositoryCreationType : String ("marct" ),
77
+ MembersCanCreatePages : Bool (true ),
78
+ MembersCanCreatePublicPages : Bool (false ),
79
+ MembersCanCreatePrivatePages : Bool (true ),
80
+ },
81
+ CreatedAt : & referenceTime ,
82
+ ID : String ("id" ),
83
+ }
84
+
85
+ want := `{
86
+ "type": "t",
87
+ "public": false,
88
+ "payload": {
89
+ "key": "value"
90
+ },
91
+ "repo": {
92
+ "id": 1,
93
+ "name": "n",
94
+ "url": "s"
95
+ },
96
+ "actor": {
97
+ "login": "l",
98
+ "id": 1,
99
+ "node_id": "n",
100
+ "avatar_url": "a",
101
+ "url": "u",
102
+ "events_url": "e",
103
+ "repos_url": "r"
104
+ },
105
+ "org": {
106
+ "name": "n",
107
+ "company": "c",
108
+ "blog": "b",
109
+ "location": "loc",
110
+ "email": "e",
111
+ "twitter_username": "tu",
112
+ "description": "d",
113
+ "billing_email": "be",
114
+ "is_verified": true,
115
+ "has_organization_projects": true,
116
+ "has_repository_projects": true,
117
+ "default_repository_permission": "drp",
118
+ "members_can_create_repositories": true,
119
+ "members_can_create_public_repositories": false,
120
+ "members_can_create_private_repositories": true,
121
+ "members_can_create_internal_repositories": true,
122
+ "members_allowed_repository_creation_type": "marct",
123
+ "members_can_create_pages": true,
124
+ "members_can_create_public_pages": false,
125
+ "members_can_create_private_pages": true
126
+ },
127
+ "created_at": ` + referenceTimeStr + `,
128
+ "id": "id"
129
+ }`
130
+
131
+ testJSONMarshal (t , u , want )
132
+ }
0 commit comments