Skip to content

Commit a7a3d8c

Browse files
authored
Add test cases for JSON resource marshaling (#1951)
1 parent be31e40 commit a7a3d8c

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

github/event_test.go

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)