function it_is_configurable_if_it_has_one_variant_and_at_least_one_option(ProductOptionInterface $option, ProductVariantInterface $variant) { $variant->setProduct($this)->shouldBeCalled(); $this->addVariant($variant); $this->addOption($option); $this->isConfigurable()->shouldReturn(true); $this->isSimple()->shouldReturn(false); }
function it_returns_available_variants(ProductVariantInterface $unavailableVariant, ProductVariantInterface $variant) { $unavailableVariant->isAvailable()->willReturn(false); $variant->isAvailable()->willReturn(true); $unavailableVariant->setProduct($this)->shouldBeCalled(); $variant->setProduct($this)->shouldBeCalled(); $this->addVariant($unavailableVariant); $this->addVariant($variant); $this->getAvailableVariants()->shouldHaveCount(1); $this->getAvailableVariants()->first()->shouldReturn($variant); }