/** * @test */ public function it_gets_an_image_collection() { $wps = new Sdk(); $wps->addMockResults([new Response(200, [], json_encode($wps->imagesResponse()))]); $images = $wps->image()->all(); $this->assertEquals(['/images/'], $wps->getRequestUris()); $this->assertInstanceOf(Illuminate\Support\Collection::class, $images); $this->assertContainsOnlyInstancesOf(Image::class, $images); $this->assertEquals([1, 2], [$images[0]->id, $images[1]->id]); }
/** * @test */ public function it_syncs_images_for_a_product_on_a_site() { $wps = new Sdk(); $response = $wps->imagesResponse(); $response['data'] = array_reverse($response['data']); $wps->addMockResults([new Response(200, [], json_encode($wps->siteResponse(1))), new Response(200, [], json_encode($wps->productResponse(1))), new Response(200, [], json_encode($response))]); $site = $wps->site()->find(1); $product = $site->products(1); $product->images()->sync([2, 1]); $keys = $product->images->map(function ($item, $key) { return $item->getKey(); }); $this->assertEquals(['/sites/1/', '/products/1/', '/sites/1/products/1/images/'], $wps->getRequestUris()); $this->assertEquals([null, null, '[{"id":2},{"id":1}]'], $wps->getRequestBodies()); $this->assertContainsOnlyInstancesOf(Wps\Models\Image::class, $product->images); $this->assertEquals([2, 1], $keys->toArray()); }