@@ -29,3 +29,104 @@ func TestPayload_NoPanic(t *testing.T) {
2929 e := & Event {Type : & name , RawPayload : & body }
3030 e .Payload ()
3131}
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