2424use Commercetools \Core \Request \CustomField \Command \SetCustomFieldAction ;
2525use Commercetools \Core \Request \CustomField \Command \SetCustomTypeAction ;
2626use Commercetools \Core \Request \DiscountCodes \Command \DiscountCodeChangeCartDiscountsAction ;
27+ use Commercetools \Core \Request \DiscountCodes \Command \DiscountCodeChangeGroupsAction ;
2728use Commercetools \Core \Request \DiscountCodes \Command \DiscountCodeChangeIsActiveAction ;
2829use Commercetools \Core \Request \DiscountCodes \Command \DiscountCodeSetCartPredicateAction ;
2930use Commercetools \Core \Request \DiscountCodes \Command \DiscountCodeSetDescriptionAction ;
@@ -50,7 +51,7 @@ protected function createCartDiscount($draft)
5051 $ response = $ request ->executeWithClient ($ this ->getClient ());
5152 $ cartDiscount = $ request ->mapResponse ($ response );
5253
53- $ this ->discountDeleteRequests [] = CartDiscountDeleteRequest::ofIdAndVersion (
54+ $ this ->discountDeleteRequests [] = $ this -> deleteRequest = CartDiscountDeleteRequest::ofIdAndVersion (
5455 $ cartDiscount ->getId (),
5556 $ cartDiscount ->getVersion ()
5657 );
@@ -155,11 +156,7 @@ public function testChangeCartDiscountAction()
155156 $ this ->assertSame ($ cartDiscount ->getId (), $ result ->getCartDiscounts ()->current ()->getId ());
156157 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
157158
158- $ deleteRequest = array_pop ($ this ->cleanupRequests );
159- $ deleteRequest ->setVersion ($ result ->getVersion ());
160- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
161-
162- $ this ->assertInstanceOf (DiscountCode::class, $ result );
159+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
163160 }
164161
165162 public function testChangeCartDiscountsAction ()
@@ -190,11 +187,7 @@ public function testChangeCartDiscountsAction()
190187 $ this ->assertSame ($ expectedIds , $ ids );
191188 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
192189
193- $ deleteRequest = array_pop ($ this ->cleanupRequests );
194- $ deleteRequest ->setVersion ($ result ->getVersion ());
195- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
196-
197- $ this ->assertInstanceOf (DiscountCode::class, $ result );
190+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
198191 }
199192
200193 public function testSetDescription ()
@@ -218,11 +211,7 @@ public function testSetDescription()
218211 $ this ->assertSame ($ description , $ result ->getDescription ()->en );
219212 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
220213
221- $ deleteRequest = array_pop ($ this ->cleanupRequests );
222- $ deleteRequest ->setVersion ($ result ->getVersion ());
223- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
224-
225- $ this ->assertInstanceOf (DiscountCode::class, $ result );
214+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
226215 }
227216
228217 public function testChangeIsActive ()
@@ -244,11 +233,29 @@ public function testChangeIsActive()
244233 $ this ->assertSame ($ isActive , $ result ->getIsActive ());
245234 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
246235
247- $ deleteRequest = array_pop ($ this ->cleanupRequests );
248- $ deleteRequest ->setVersion ($ result ->getVersion ());
249- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
236+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
237+ }
238+
239+ public function testChangeGroups ()
240+ {
241+ $ draft = $ this ->getDraft ('change-groups ' );
242+ $ draft ->setGroups (['test ' ]);
243+ $ discountCode = $ this ->createDiscountCode ($ draft );
244+ $ this ->assertSame ('test ' , current ($ discountCode ->getGroups ()));
245+
246+
247+ $ request = DiscountCodeUpdateRequest::ofIdAndVersion ($ discountCode ->getId (), $ discountCode ->getVersion ())
248+ ->addAction (
249+ DiscountCodeChangeGroupsAction::of ()->setGroups (['test2 ' ])
250+ )
251+ ;
252+ $ response = $ request ->executeWithClient ($ this ->getClient ());
253+ $ result = $ request ->mapResponse ($ response );
254+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
250255
251256 $ this ->assertInstanceOf (DiscountCode::class, $ result );
257+ $ this ->assertSame ('test2 ' , current ($ result ->getGroups ()));
258+ $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
252259 }
253260
254261 public function testSetCartPredicate ()
@@ -270,11 +277,7 @@ public function testSetCartPredicate()
270277 $ this ->assertSame ($ cartPredicate , $ result ->getCartPredicate ());
271278 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
272279
273- $ deleteRequest = array_pop ($ this ->cleanupRequests );
274- $ deleteRequest ->setVersion ($ result ->getVersion ());
275- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
276-
277- $ this ->assertInstanceOf (DiscountCode::class, $ result );
280+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
278281 }
279282
280283 public function testSetMaxApplications ()
@@ -296,11 +299,7 @@ public function testSetMaxApplications()
296299 $ this ->assertSame ($ maxApplications , $ result ->getMaxApplications ());
297300 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
298301
299- $ deleteRequest = array_pop ($ this ->cleanupRequests );
300- $ deleteRequest ->setVersion ($ result ->getVersion ());
301- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
302-
303- $ this ->assertInstanceOf (DiscountCode::class, $ result );
302+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
304303 }
305304
306305 public function testSetMaxApplicationsPerCustomer ()
@@ -323,11 +322,7 @@ public function testSetMaxApplicationsPerCustomer()
323322 $ this ->assertSame ($ maxApplicationsPerCustomer , $ result ->getMaxApplicationsPerCustomer ());
324323 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
325324
326- $ deleteRequest = array_pop ($ this ->cleanupRequests );
327- $ deleteRequest ->setVersion ($ result ->getVersion ());
328- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
329-
330- $ this ->assertInstanceOf (DiscountCode::class, $ result );
325+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
331326 }
332327
333328 public function testSetName ()
@@ -350,10 +345,6 @@ public function testSetName()
350345 $ this ->assertSame ($ name ->en , $ result ->getName ()->en );
351346 $ this ->assertNotSame ($ discountCode ->getVersion (), $ result ->getVersion ());
352347
353- $ deleteRequest = array_pop ($ this ->cleanupRequests );
354- $ deleteRequest ->setVersion ($ result ->getVersion ());
355- $ result = $ this ->getClient ()->execute ($ deleteRequest )->toObject ();
356-
357- $ this ->assertInstanceOf (DiscountCode::class, $ result );
348+ $ this ->deleteRequest ->setVersion ($ result ->getVersion ());
358349 }
359350}
0 commit comments