public function testObject() { $product = new Product(); $product->setTitle('title'); $product->setSize('10k'); $product->setUnitPrice('10'); $product->setDescription('description'); $products = new Products(); $products->add($product); $this->assertArrayHasKey('total', $products->getItems()); }
public function testProduct() { //nazwa $stockQty jest zdefiniowana w klasie a w funkcji getStockQty jest zapisana jako stockqty //co uniemożliwiało pobranie wartości $prod = new Product(); $this->assertFalse(false, $prod->hasStock()); $this->assertTrue(true, $prod->hasStock()); /* Jako, że funckaj sell nie zwraca wartości nie mogę użyć czegoś takiego chyba, że dopiszę return do tej funkcji $quantity = 2; $this->assertEquals($prod->getStockQty()-2, $prod->sell($quantity)); */ $quantity = 2; $quantityBefore = $prod->getStockQty(); $prod->sell($quantity); $this->assertEquals($quantityBefore, $prod->getStockQty() - $quantity); /* Jako, że funkcja buy nie zwraca wartości nie mogę użyć czegoś takiego chyba, że dopiszę return do tej funkcji $quantity = 3; $this->assertEquals($prod->getStockQty()+3, $prod->buy($quantity)); */ $quantity = 3; $quantityBefore = $prod->getStockQty(); $prod->buy($quantity); $this->assertEquals($quantityBefore, $prod->getStockQty() + $quantity); /* funkcja nie zwróci wartości z użytą zmienną bo nie używa zmiennej $quantity w swoim ciele domyślnie będzie zawsze 0 */ $quantity = 5; $this->assertEquals(0, $prod->getPriceForQuantity($quantity)); //skoro nastawiamy $product_code na 10 powinien zwrócic 10 $product_code = 10; $prod->setProductCode($product_code); $this->assertEquals(10, $prod->getProductCode()); /* Skoro ustawiam $unitPrice na 15 powinno zwrócic 15 jako tą sama wartość */ $unitPrice = 15; $prod->setUnitPrice($unitPrice); $this->assertEquals($prod->getUnitPrice(), $unitPrice); }
require __DIR__ . '/vendor/autoload.php'; use Symfony\Component\ClassLoader\ClassMapGenerator; ClassMapGenerator::dump(array(__DIR__ . '/src'), __DIR__ . '/class_map.php'); use Symfony\Component\ClassLoader\MapClassLoader; $mapping = (include __DIR__ . '/class_map.php'); $loader = new MapClassLoader($mapping); $loader->register(); use Goutte\Client; use Guzzle\Common\Event; use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Encoder\XmlEncoder; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; date_default_timezone_set('Europe/London'); $client = new Client(); $url_crawl = 'http://www.sainsburys.co.uk/webapp/wcs/stores/servlet/CategoryDisplay?msg=&categoryId=185749&langId=44&storeId=10151&krypto=CWSPwJn7%2FfNCQJ17kIzWIEvEWIHZR3Bj3iR4i5MAF9M7qzk%2FP9%2B4zVL66KSWG186Uk9LnjKfPgCi%0AMsUYGCAI6oj6XhceppObUmu5R1ud8Z7wJuqB5X214E%2BBA47VydOEDYPnnJM%2BvN%2FIT5QMVV5%2B2aGv%0Alb1unCWjvafVBq7m6USN2aiCjWKM5mUPqPuXdvOWsUIFwpRb3OMbqw0sp5n8RyO6gCstruK1H%2B3L%0AGstBthGCZEJIXfuWPan04OtMjtzKYB1lUYa1f1JJu7YBoqhhyEgYYl0MlcS8vhp8Dn4dsKY%3D#langId=44&storeId=10151&catalogId=10137&categoryId=185749&parent_category_rn=12518&top_category=12518&pageSize=20&orderBy=FAVOURITES_FIRST&searchTerm=&beginIndex=0&hideFilters=true'; $crawler = $client->request('GET', $url_crawl); $product_elms = new Products(); $crawler->filter('ul.productLister > li .productInner')->each(function ($node) use(&$product_elms) { $product_elm = new Product(); $product_elm->setTitle($node->filter('h3 a')->text()); $product_elm->setUnitPrice($node->filter('.pricePerUnit')->text()); // get the item description from the linked page $client_internal = new Client(); $crawler_internal = $client_internal->request('GET', $node->filter('h3 a')->attr('href')); $product_elm->setDescription($crawler_internal->filter('.productText')->text()); $product_elm->setSize(strlen($crawler_internal->html())); // calc total unit price $product_elms->add($product_elm)->addUnitPrice($product_elm); }); ProductsOutputUtil::output('json', $product_elms);
public function testUnitPrice() { $this->assertSame($this->entity, $this->entity->setUnitPrice(12.34)); $this->assertSame(12.34, $this->entity->getUnitPrice()); }