Skip to content

Commit 2b798f9

Browse files
authored
Merge pull request #238 from moosetechnology/merged-merge-request
Merged merge request
2 parents f9ecff9 + bb78c65 commit 2b798f9

4 files changed

Lines changed: 448 additions & 41 deletions

File tree

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
"
2+
A MergedMergeRequestMetricTest is a test class for testing the behavior of MergedMergeRequestMetric
3+
"
4+
Class {
5+
#name : #MergeRequestMergedByUserMetricTest,
6+
#superclass : #UserMetricTest,
7+
#category : #'GitLabHealth-Model-Analysis-Tests'
8+
}
9+
10+
{ #category : #tests }
11+
MergeRequestMergedByUserMetricTest >> testCalculate [
12+
13+
| result glhImporter mergedMergeRequest |
14+
"Given"
15+
16+
17+
glhImporter := GLPHImporterMock new.
18+
glhImporter mergeRequests: {
19+
(GLHMergeRequest new
20+
author: user;
21+
merge_user: user;
22+
project: project1;
23+
created_at: createdAt ;
24+
merged_at: mergedAt ).
25+
26+
(GLHMergeRequest new
27+
author: user;
28+
merge_user: user;
29+
project: project1;
30+
created_at: createdAt - 20 days;
31+
merged_at: nil) }.
32+
33+
34+
mergedMergeRequest := MergeRequestMergedByUserMetric new
35+
user: user;
36+
glhImporter: glhImporter;
37+
setPeriodSince: since
38+
until: until;
39+
over: Week.
40+
41+
"When"
42+
result := mergedMergeRequest calculate.
43+
44+
"Then"
45+
self assert: result equals: 1
46+
]
47+
48+
{ #category : #tests }
49+
MergeRequestMergedByUserMetricTest >> testCalculate1MRInPeriod1Outside [
50+
51+
| result glhImporter mergedMergeRequest |
52+
"Given"
53+
glhImporter := GLPHImporterMock new.
54+
glhImporter mergeRequests: {
55+
(GLHMergeRequest new
56+
author: user;
57+
project: project1;
58+
merge_user: user;
59+
created_at: createdAt;
60+
merged_at: mergedAt).
61+
62+
"open but merged anotherWeek"
63+
(GLHMergeRequest new
64+
author: user;
65+
merge_user: user;
66+
project: project1;
67+
created_at: createdAt;
68+
merged_at: createdAt + 10 days) }.
69+
"open and merge during the same week"
70+
71+
72+
mergedMergeRequest := MergeRequestMergedByUserMetric new
73+
user: user;
74+
glhImporter: glhImporter;
75+
setPeriodSince: since until: until;
76+
over: Week.
77+
78+
"When"
79+
result := mergedMergeRequest calculate.
80+
81+
"Then"
82+
self assert: result equals: 1
83+
]
84+
85+
{ #category : #tests }
86+
MergeRequestMergedByUserMetricTest >> testCalculate1MROpenedButNotMerged [
87+
88+
| result glhImporter mergedMergeRequest |
89+
"Given"
90+
glhImporter := GLPHImporterMock new.
91+
glhImporter mergeRequests: {
92+
(GLHMergeRequest new
93+
author: user;
94+
merge_user: user;
95+
project: project1;
96+
created_at: createdAt;
97+
merged_at: mergedAt;
98+
state: #merged).
99+
100+
(GLHMergeRequest new
101+
author: user;
102+
project: project1;
103+
created_at: createdAt;
104+
state: #opened) }.
105+
106+
107+
mergedMergeRequest := MergeRequestMergedByUserMetric new
108+
user: user;
109+
glhImporter: glhImporter;
110+
setPeriodSince: since until: until;
111+
over: Week.
112+
113+
"When"
114+
result := mergedMergeRequest calculate.
115+
116+
"Then"
117+
self assert: result equals: 1
118+
]
119+
120+
{ #category : #tests }
121+
MergeRequestMergedByUserMetricTest >> testCalculate2MROneForEachUser [
122+
123+
| result glhImporter mergedMergeRequest user2 |
124+
"Given"
125+
126+
127+
user2 := GLHUser new
128+
name: 'user2';
129+
id: 2;
130+
contributedProjects: { project1 }.
131+
132+
glhImporter := GLPHImporterMock new.
133+
glhImporter mergeRequests: {
134+
(GLHMergeRequest new
135+
author: user;
136+
title: 'MR1';
137+
project: project1;
138+
created_at: createdAt;
139+
merge_user: user;
140+
merged_at: mergedAt).
141+
(GLHMergeRequest new
142+
author: user2;
143+
title: 'MR2';
144+
project: project1;
145+
created_at: createdAt;
146+
merge_user: user2;
147+
merged_at: mergedAt) }.
148+
149+
150+
mergedMergeRequest := MergeRequestMergedByUserMetric new
151+
user: user;
152+
glhImporter: glhImporter;
153+
setPeriodSince: since until: until;
154+
over: Week.
155+
156+
"When"
157+
result := mergedMergeRequest calculate.
158+
159+
"Then"
160+
self assert: result equals: 1
161+
]
162+
163+
{ #category : #tests }
164+
MergeRequestMergedByUserMetricTest >> testCalculate3MROpenButMergedByOthers [
165+
166+
| result glhImporter mergedMergeRequest user2 |
167+
"Given"
168+
169+
170+
user2 := GLHUser new
171+
name: 'user2';
172+
id: 2;
173+
contributedProjects:
174+
{ project1 }.
175+
176+
glhImporter := GLPHImporterMock new.
177+
glhImporter mergeRequests: {
178+
(GLHMergeRequest new
179+
author: user;
180+
title: 'MR1';
181+
created_at: createdAt;
182+
merge_user: user2;
183+
merged_at: mergedAt ).
184+
(GLHMergeRequest new
185+
author: user;
186+
title: 'MR2';
187+
created_at: createdAt ;
188+
merge_user: user2;
189+
merged_at: mergedAt ).
190+
(GLHMergeRequest new
191+
author: user;
192+
title: 'MR3';
193+
created_at: createdAt ;
194+
merge_user: user2;
195+
merged_at: mergedAt ) }.
196+
197+
198+
mergedMergeRequest := MergeRequestMergedByUserMetric new
199+
user: user;
200+
glhImporter: glhImporter;
201+
setPeriodSince: since
202+
until: until;
203+
over: Week.
204+
205+
"When"
206+
result := mergedMergeRequest calculate.
207+
208+
"Then"
209+
self assert: result equals: 0
210+
]
211+
212+
{ #category : #tests }
213+
MergeRequestMergedByUserMetricTest >> testCalculate3MROpenByOther [
214+
215+
| result glhImporter mergedMergeRequest user2 |
216+
"Given"
217+
218+
user2 := GLHUser new
219+
name: 'user2';
220+
id: 2;
221+
contributedProjects:
222+
{ project1 }.
223+
224+
glhImporter := GLPHImporterMock new.
225+
glhImporter mergeRequests: {
226+
(GLHMergeRequest new
227+
author: user2;
228+
title: 'MR1';
229+
created_at: createdAt ;
230+
merge_user: user;
231+
project: project1 ;
232+
state: #merged;
233+
merged_at: mergedAt ).
234+
(GLHMergeRequest new
235+
author: user2;
236+
state: #merged;
237+
title: 'MR2';
238+
created_at: createdAt ;
239+
project: project1 ;
240+
merge_user: user;
241+
merged_at: mergedAt ).
242+
(GLHMergeRequest new
243+
author: user2;
244+
state: #merged;
245+
title: 'MR3';
246+
created_at: createdAt ;
247+
project: project1 ;
248+
merge_user: user;
249+
merged_at: mergedAt ) }.
250+
251+
252+
mergedMergeRequest := MergeRequestMergedByUserMetric new
253+
user: user;
254+
glhImporter: glhImporter;
255+
setPeriodSince: since
256+
until: until;
257+
over: Week.
258+
259+
"When"
260+
result := mergedMergeRequest calculate.
261+
262+
"Then"
263+
self assert: result equals: 3
264+
]
265+
266+
{ #category : #tests }
267+
MergeRequestMergedByUserMetricTest >> testCalculateNoMergeRequests [
268+
269+
| result glhImporter mergedMergeRequest |
270+
"Given"
271+
glhImporter := GLPHImporterMock new.
272+
273+
274+
mergedMergeRequest := MergeRequestMergedByUserMetric new
275+
user: user;
276+
glhImporter: glhImporter;
277+
setPeriodSince: since
278+
until: until;
279+
over: Week.
280+
281+
"When"
282+
result := mergedMergeRequest calculate.
283+
284+
"Then"
285+
self assert: result equals: 0
286+
]

0 commit comments

Comments
 (0)