@@ -106,6 +106,72 @@ public function shouldShowUser(): void
106106 $ this ->assertEquals ($ expectedArray , $ api ->show (1 ));
107107 }
108108
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+
109175 protected function getUsersProjectsData ()
110176 {
111177 return [
0 commit comments