Code Duplication    Length = 38-40 lines in 2 locations

tests/Unit/Api/Product/DiscountCollectionTest.php 1 location

@@ 13-50 (lines=38) @@
10
use PHPUnit\Framework\TestCase;
11
12
/** * @small */
13
final class DiscountCollectionTest extends TestCase
14
{
15
    /** @test */
16
    public function discountCollection()
17
    {
18
        $discount1 = $this->getDiscountWithUuid();
19
        $discount2 = $this->getDiscountWithUuid();
20
        $discount3 = $this->getDiscountWithUuid();
21
22
        $discountCollection = new DiscountCollection([$discount1, $discount2, $discount3]);
23
        $discountCollection->add($discount3);// add discount 3 again it should only end up once in the collection
24
25
        //-- Check if collection contains all 3 discounts
26
        $collection = $discountCollection->getAll();
27
        self::assertEquals(3, count($collection));
28
        self::assertEquals($discount1, $collection[(string) $discount1->getUuid()]);
29
        self::assertEquals($discount2, $collection[(string) $discount2->getUuid()]);
30
        self::assertEquals($discount3, $collection[(string) $discount3->getUuid()]);
31
        
32
        $discountCollection->remove($discount2);
33
34
        //-- Check if collection does not contains discount 2 but does contain the others
35
        $collection = $discountCollection->getAll();
36
        self::assertEquals(2, count($collection));
37
        self::assertEquals($discount1, $collection[(string) $discount1->getUuid()]);
38
        self::assertEquals($discount3, $discountCollection->get($discount3->getUuid()));
39
        self::assertFalse(array_key_exists((string) $discount2->getUuid(), $collection));
40
    }
41
42
    private function getDiscountWithUuid(): Discount
43
    {
44
        return Discount::new(
45
            'name',
46
            'description',
47
            new ImageCollection()
48
        );
49
    }
50
}
51

tests/Unit/Api/Product/ProductCollectionTest.php 1 location

@@ 14-53 (lines=40) @@
11
use LauLamanApps\IzettleApi\API\Product\VariantCollection;
12
use PHPUnit\Framework\TestCase;
13
14
final class ProductCollectionTest extends TestCase
15
{
16
    /** @test */
17
    public function productCollection()
18
    {
19
        $product1 = $this->getProductWithUuid();
20
        $product2 = $this->getProductWithUuid();
21
        $product3 = $this->getProductWithUuid();
22
23
        $productCollection = new ProductCollection([$product1, $product2, $product3]);
24
        $productCollection->add($product3);// add product 3 again it should only end up once in the collection
25
26
        //-- Check if collection contains all 3 products
27
        $collection = $productCollection->getAll();
28
        self::assertEquals(3, count($collection));
29
        self::assertEquals($product1, $collection[(string) $product1->getUuid()]);
30
        self::assertEquals($product2, $collection[(string) $product2->getUuid()]);
31
        self::assertEquals($product3, $collection[(string) $product3->getUuid()]);
32
        
33
        $productCollection->remove($product2);
34
35
        //-- Check if collection does not contains product 2 but does contain the others
36
        $collection = $productCollection->getAll();
37
        self::assertEquals(2, count($collection));
38
        self::assertEquals($product1, $collection[(string) $product1->getUuid()]);
39
        self::assertEquals($product3, $productCollection->get($product3->getUuid()));
40
        self::assertFalse(array_key_exists((string) $product2->getUuid(), $collection));
41
    }
42
43
    private function getProductWithUuid(): Product
44
    {
45
        return Product::new(
46
            'name',
47
            'description',
48
            new CategoryCollection(),
49
            new ImageCollection(),
50
            new VariantCollection()
51
        );
52
    }
53
}
54