@@ -232,4 +232,56 @@ private function getArticlesByStatus($status)
232232
233233 return json_decode ($ client ->getResponse ()->getContent (), true );
234234 }
235+
236+ public function testFilterArticlesByRoute ()
237+ {
238+ $ content = $ this ->getArticlesByRouteId (1 );
239+ self ::assertEquals (5 , $ content ['total ' ]);
240+
241+ $ content = $ this ->getArticlesByRouteId (2 );
242+ self ::assertEquals (1 , $ content ['total ' ]);
243+ self ::assertEquals (2 , $ content ['_embedded ' ]['_items ' ][0 ]['route ' ]['id ' ]);
244+ self ::assertEquals ('Article 3 ' , $ content ['_embedded ' ]['_items ' ][0 ]['title ' ]);
245+
246+ $ content = $ this ->getArticlesByRouteId (3 );
247+ self ::assertEquals (1 , $ content ['total ' ]);
248+ self ::assertEquals (3 , $ content ['_embedded ' ]['_items ' ][0 ]['route ' ]['id ' ]);
249+ self ::assertEquals ('Features client1 ' , $ content ['_embedded ' ]['_items ' ][0 ]['title ' ]);
250+ }
251+
252+ public function testFilterArticlesByRouteAndStatus ()
253+ {
254+ $ client = static ::createClient ();
255+ $ client ->request ('GET ' , $ this ->router ->generate ('swp_api_content_list_articles ' , [
256+ 'route ' => 2 ,
257+ 'status ' => 'canceled ' ,
258+ ]));
259+ self ::assertEquals (200 , $ client ->getResponse ()->getStatusCode ());
260+
261+ $ content = json_decode ($ client ->getResponse ()->getContent (), true );
262+
263+ self ::assertEquals (1 , $ content ['total ' ]);
264+ self ::assertEquals (2 , $ content ['_embedded ' ]['_items ' ][0 ]['route ' ]['id ' ]);
265+ self ::assertEquals ('Article 3 ' , $ content ['_embedded ' ]['_items ' ][0 ]['title ' ]);
266+ self ::assertEquals ('canceled ' , $ content ['_embedded ' ]['_items ' ][0 ]['status ' ]);
267+
268+ $ client ->request ('GET ' , $ this ->router ->generate ('swp_api_content_list_articles ' , [
269+ 'route ' => 2 ,
270+ 'status ' => 'fake ' ,
271+ ]));
272+ self ::assertEquals (200 , $ client ->getResponse ()->getStatusCode ());
273+
274+ $ content = json_decode ($ client ->getResponse ()->getContent (), true );
275+
276+ self ::assertEquals (0 , $ content ['total ' ]);
277+ }
278+
279+ private function getArticlesByRouteId ($ routeId )
280+ {
281+ $ client = static ::createClient ();
282+ $ client ->request ('GET ' , $ this ->router ->generate ('swp_api_content_list_articles ' , ['route ' => $ routeId ]));
283+ self ::assertEquals (200 , $ client ->getResponse ()->getStatusCode ());
284+
285+ return json_decode ($ client ->getResponse ()->getContent (), true );
286+ }
235287}
0 commit comments