<?xml version="1.0" encoding="UTF-8"?>
<!--
 /**
  * Copyright © Magento, Inc. All rights reserved.
  * See COPYING.txt for license details.
  */
-->

<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
    <test name="StoreFrontMinicartWithMultishipmentTest">
        <annotations>
            <features value="Multishipment"/>
            <stories value="Checking multi shipment with multiple shipment at minicart from checkout"/>
            <title value="Checking multi shipment with multiple shipment at minicart from checkout"/>
            <description value="Shipping price shows 0 when you return from multiple checkout to cart"/>
            <severity value="MAJOR"/>
            <testCaseId value="MC-18519"/>
            <group value="Multishipment"/>
        </annotations>

        <before>
            <createData stepKey="category" entity="SimpleSubCategory"/>
            <createData stepKey="product1" entity="SimpleProduct">
                <requiredEntity createDataKey="category"/>
            </createData>
            <createData stepKey="product2" entity="SimpleProduct">
                <requiredEntity createDataKey="category"/>
            </createData>
            <createData entity="Simple_US_Customer_Two_Addresses" stepKey="customer"/>
            <createData entity="FreeShippinMethodConfig" stepKey="enableFreeShipping"/>
            <createData entity="FlatRateShippingMethodConfig" stepKey="enableFlatRateShipping"/>
            <actionGroup ref="CliEnableCheckMoneyOrderPaymentMethodActionGroup" stepKey="enableCheckMoneyOrderPaymentMethod"/>
            <actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
            <actionGroup ref="LoginToStorefrontActionGroup" stepKey="loginToStorefrontAccount">
                <argument name="Customer" value="$$customer$$"/>
            </actionGroup>
        </before>

        <after>
            <actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="logoutCustomer"/>
            <deleteData stepKey="deleteCategory" createDataKey="category"/>
            <deleteData stepKey="deleteProduct1" createDataKey="product1"/>
            <deleteData stepKey="deleteProduct2" createDataKey="product2"/>
            <deleteData stepKey="deleteCustomer" createDataKey="customer"/>
            <createData entity="FreeShippinMethodDefault" stepKey="disableFreeShipping"/>
            <actionGroup ref="AdminLogoutActionGroup" stepKey="logoutAdmin"/>
        </after>

        <amOnPage url="$$product1.custom_attributes[url_key]$$.html" stepKey="goToProduct1"/>
        <actionGroup ref="AddToCartFromStorefrontProductPageActionGroup" stepKey="addToCartFromStorefrontProduct1">
            <argument name="productName" value="$$product1.name$$"/>
        </actionGroup>
        <amOnPage url="$$product2.custom_attributes[url_key]$$.html" stepKey="goToProduct2"/>
        <actionGroup ref="AddToCartFromStorefrontProductPageActionGroup" stepKey="addToCartFromStorefrontProduct2">
            <argument name="productName" value="$$product2.name$$"/>
        </actionGroup>
        <actionGroup ref="StorefrontOpenCartFromMinicartActionGroup" stepKey="openCart"/>
        <actionGroup ref="CheckingWithMultipleAddressesActionGroup" stepKey="checkoutWithMultipleAddresses"/>
        <actionGroup ref="SelectMultiShippingInfoActionGroup" stepKey="checkoutWithMultipleShipping"/>
        <actionGroup ref="SelectBillingInfoActionGroup" stepKey="checkoutWithPaymentMethod"/>
        <actionGroup ref="ReviewOrderForMultiShipmentActionGroup" stepKey="reviewOrderForMultiShipment"/>
        <amOnPage url="/checkout/cart/index/" stepKey="amOnCheckoutCartIndexPage"/>
        <actionGroup ref="StorefrontOpenCartFromMinicartActionGroup" stepKey="openCartAgain"/>
        <waitForPageLoad stepKey="waitForMinicartPageLoad"/>
        <actionGroup ref="CheckingWithMinicartActionGroup" stepKey="checkoutWithMinicart"/>
    </test>
</tests>
