CartTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 19
c 1
b 0
f 0
dl 0
loc 42
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetCartProductsIfItNotSetted() 0 5 1
A testCreateAndAddManyProductsToCart() 0 11 1
A setUp() 0 9 1
A testCreateAndAddAProductToCart() 0 7 1
1
<?php
2
3
namespace Tests\Classes;
4
5
use Ipag\Classes\Cart;
6
use Ipag\Classes\Product;
7
use PHPUnit\Framework\TestCase;
8
9
class CartTest extends TestCase
10
{
11
    private $product;
12
13
    public function setUp()
14
    {
15
        parent::setUp();
16
17
        $this->product = new Product();
18
        $this->product->setName('Produto de Testes')
19
            ->setQuantity(10)
20
            ->setUnitPrice(1.99)
21
            ->setSku('ABCD123');
22
    }
23
24
    public function testCreateAndAddAProductToCart()
25
    {
26
        $cart = new Cart();
27
28
        $cart->addProduct($this->product);
29
30
        $this->assertEquals(count($cart->getProducts()), 1);
31
    }
32
33
    public function testCreateAndAddManyProductsToCart()
34
    {
35
        $cart = new Cart();
36
37
        $cart->addProducts(
38
            ['Produto 1', 5.00, 1, 'ABCD98827'],
39
            ['Produto 2', 10.00, 6, 'ABCD98828'],
40
            ['Produto 3', 1.00, 2, 'ABCD98829']
41
        );
42
43
        $this->assertEquals(count($cart->getProducts()), 3);
44
    }
45
46
    public function testGetCartProductsIfItNotSetted()
47
    {
48
        $cart = new Cart();
49
50
        $this->assertEquals([], $cart->getProducts());
51
    }
52
}
53