'ES' ], 'rate' ), DataFixture( TaxRuleFixture::class, [ 'customer_tax_class_ids' => [3], 'product_tax_class_ids' => ['$product_tax_class.classId$'], 'tax_rate_ids' => ['$rate.id$'] ], 'rule' ), DataFixture( ProductFixture::class, [ 'custom_attributes' => [ 'tax_class_id' => '$product_tax_class.classId$' ], ], 'product' ), DataFixture(GuestCart::class, ['currency' => 'USD'], 'cart'), DataFixture(QuoteIdMask::class, ['cart_id' => '$cart.id$'], 'quoteIdMask'), DataFixture(AddProductToCart::class, [ 'cart_id' => '$cart.id$', 'product_id' => '$product.id$', 'qty' => 1 ]) ] public function testEstimateTotals(string $countryCode, string $shipping, array $prices): void { $maskedQuoteId = DataFixtureStorageManager::getStorage()->get('quoteIdMask')->getMaskedId(); $query = <<graphQlMutation($query); self::assertEquals( [ 'estimateTotals' => [ 'cart' => [ 'prices' => $prices ] ] ], $response ); } public function estimationsProvider(): array { return [ [ 'ES', 'freeshipping', [ 'grand_total' => [ 'value' => 11, 'currency' => 'USD' ], 'applied_taxes' => [ [ 'amount' => [ 'value' => 1, 'currency' => 'USD' ] ] ] ] ], [ 'IE', 'flatrate', [ 'grand_total' => [ 'value' => 15, 'currency' => 'USD' ], 'applied_taxes' => [] ] ] ]; } }