@@ -106,6 +106,72 @@ public function shouldShowUser(): void
106
106
$ this ->assertEquals ($ expectedArray , $ api ->show (1 ));
107
107
}
108
108
109
+ protected function getUsersMembershipsData ()
110
+ {
111
+ return [
112
+ [
113
+ 'source_id ' => 1 ,
114
+ 'source_name ' => 'Project one ' ,
115
+ 'source_type ' => 'Project ' ,
116
+ 'access_level ' => '20 ' ,
117
+ ],
118
+ [
119
+ 'source_id ' => 3 ,
120
+ 'source_name ' => 'Group three ' ,
121
+ 'source_type ' => 'Namespace ' ,
122
+ 'access_level ' => '20 ' ,
123
+ ],
124
+ ];
125
+ }
126
+
127
+ protected function getUsersMembershipsRequestMock ($ path , $ expectedArray = [], $ expectedParameters = [])
128
+ {
129
+ $ api = $ this ->getApiMock ();
130
+ $ api ->expects ($ this ->once ())
131
+ ->method ('get ' )
132
+ ->with ($ path , $ expectedParameters )
133
+ ->will ($ this ->returnValue ($ expectedArray ))
134
+ ;
135
+
136
+ return $ api ;
137
+ }
138
+
139
+ /**
140
+ * @test
141
+ */
142
+ public function shouldShowUsersMemberships (): void
143
+ {
144
+ $ expectedArray = $ this ->getUsersMembershipsData ();
145
+
146
+ $ api = $ this ->getUsersMembershipsRequestMock ('users/1/memberships ' , $ expectedArray );
147
+
148
+ $ this ->assertEquals ($ expectedArray , $ api ->usersMemberships (1 ));
149
+ }
150
+
151
+ /**
152
+ * @test
153
+ */
154
+ public function shouldShowUsersMembershipsWithTypeProject (): void
155
+ {
156
+ $ expectedArray = [$ this ->getUsersMembershipsData ()[0 ]];
157
+
158
+ $ api = $ this ->getUsersMembershipsRequestMock ('users/1/memberships ' , $ expectedArray , ['type ' => 'Project ' ]);
159
+
160
+ $ this ->assertEquals ($ expectedArray , $ api ->usersMemberships (1 , ['type ' => 'Project ' ]));
161
+ }
162
+
163
+ /**
164
+ * @test
165
+ */
166
+ public function shouldShowUsersMembershipsWithTypeNamespace (): void
167
+ {
168
+ $ expectedArray = [$ this ->getUsersMembershipsData ()[1 ]];
169
+
170
+ $ api = $ this ->getUsersMembershipsRequestMock ('users/1/memberships ' , $ expectedArray , ['type ' => 'Namespace ' ]);
171
+
172
+ $ this ->assertEquals ($ expectedArray , $ api ->usersMemberships (1 , ['type ' => 'Namespace ' ]));
173
+ }
174
+
109
175
protected function getUsersProjectsData ()
110
176
{
111
177
return [
0 commit comments