示例#1
0
 public function testVariations()
 {
     $product = new Product();
     $this->assertFalse($product->hasVariations(), 'there should not be any variations when initialized');
     $this->assertEmpty($product->getVariations(), 'there should not be any variations when initialized');
     $product->setPrice(3);
     $variation = $product->useVariation('variant1')->setPrice(4);
     $this->assertSame($product, $variation->getParent(), 'the original Product class should be the variation parent');
     $product->useVariation('variant2')->setPrice(7);
     $this->assertSame(3, $product->getPrice());
     $this->assertSame(4, $product->useVariation('variant1')->getPrice());
     $this->assertSame(7, $product->useVariation('variant2')->getPrice());
     $this->assertTrue($product->hasVariations());
     $variations = $product->getVariations();
     $this->assertCount(2, $variations);
     $this->assertInstanceof('Vespolina\\Entity\\Product\\Product', $variations['variant1']);
     // next goal is to be able to select a product variation and add it to the cart
 }