'XL', 'color' => 'red'])); $this->assertEquals([ 'id' => 1, 'name' => 'Some item', 'price' => '10.00', 'rowId' => '07d5da5550494c62daf9993cf954303f', 'qty' => 2, 'options' => [ 'size' => 'XL', 'color' => 'red', ], 'tax' => 0, 'subtotal' => 20.00, 'discount' => 0.0, 'weight' => 550.0, ], $cartItem->toArray()); } /** @test */ public function it_can_be_cast_to_json() { $cartItem = new CartItem(1, 'Some item', new Money(1000, new Currency('USD')), 550, 2, new CartItemOptions(['size' => 'XL', 'color' => 'red'])); $this->assertJson($cartItem->toJson()); $json = '{"rowId":"07d5da5550494c62daf9993cf954303f","id":1,"name":"Some item","qty":2,"price":10,"weight":550,"options":{"size":"XL","color":"red"},"discount":0,"tax":0,"subtotal":20}'; $this->assertEquals($json, $cartItem->toJson()); } }