<?xml version="1.0" encoding="UTF-8" ?>
<!--
 /**
  * @copyright  Vertex. All rights reserved.  https://www.vertexinc.com/
  * @author     Mediotype                     https://www.mediotype.com/
  */
-->
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
    <test name="VertexAsRegisteredCustomerWithBillToAndShipDifferentCheckPhysicalProductTaxOnOrderReviewPageTest">
        <annotations>
            <features value="Vertex"/>
            <group value="Vertex"/>

            <stories value="As a store owner, I must have accurate taxes calculated for a registered customer"/>
            <title value="Validate Taxes on Order, Registered User, Physical Product, Bill-To&lt;&gt;Ship-To"/>
            <description value="Validate that a registered customer with a bill-to and a ship-to address that are the same and with a cart containing a physical product receives taxes on their order"/>

            <severity value="BLOCKER"/>
        </annotations>
        <before>
            <actionGroup ref="VertexCreateTwoOptionConfigurableProductActionGroup" stepKey="createConfigurableProduct1">
                <argument name="option1Price" value="{{Vertex_100USD_PA_Only_Values.price}}" />
            </actionGroup>
            <actionGroup ref="VertexCreateTwoOptionConfigurableProductActionGroup" stepKey="createConfigurableProduct2">
                <argument name="option1Price" value="{{Vertex_18USD_PA_Only_Values.price}}" />
            </actionGroup>
            <createData entity="VertexProductTaxClass_Clothing" stepKey="createTaxClass" />
            <createData entity="VertexSimpleProduct" stepKey="createSimpleProduct">
                <field key="price">{{Vertex_100USD_Clothing_PA_Only_Values.price}}</field>
                <requiredEntity createDataKey="createCategoryCreateConfigurableProduct1"/>
                <requiredEntity createDataKey="createTaxClass" />
            </createData>

            <createData entity="Vertex_Customer_JohnWinston" stepKey="createCustomer"/>
            <actionGroup ref="LoginToStorefrontActionGroup" stepKey="customerLogin">
                <argument name="Customer" value="$$createCustomer$$"/>
            </actionGroup>
        </before>
        <after>
            <deleteData stepKey="deleteSimpleProduct" createDataKey="createSimpleProduct"/>
            <deleteData stepKey="deleteTaxClass" createDataKey="createTaxClass" />
            <deleteData stepKey="deleteChildProduct1" createDataKey="createConfigChildProduct1CreateConfigurableProduct1" />
            <deleteData stepKey="deleteChildProduct2" createDataKey="createConfigChildProduct2CreateConfigurableProduct1" />
            <deleteData stepKey="deleteConfigProduct" createDataKey="ProductCreateConfigurableProduct1"/>
            <deleteData stepKey="deleteConfigProductAttribute" createDataKey="ProductAttributeCreateConfigurableProduct1" />
            <deleteData stepKey="deleteCategory" createDataKey="createCategoryCreateConfigurableProduct1"/>
            <deleteData stepKey="deleteChildProduct1Config2" createDataKey="createConfigChildProduct1CreateConfigurableProduct2" />
            <deleteData stepKey="deleteChildProduct2Config2" createDataKey="createConfigChildProduct2CreateConfigurableProduct2" />
            <deleteData stepKey="deleteConfigProductConfig2" createDataKey="ProductCreateConfigurableProduct2"/>
            <deleteData stepKey="deleteConfigProductAttributeConfig2" createDataKey="ProductAttributeCreateConfigurableProduct2" />
            <deleteData stepKey="deleteCategoryConfig2" createDataKey="createCategoryCreateConfigurableProduct2"/>
            <deleteData stepKey="deleteCustomer" createDataKey="createCustomer"/>
            <actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="customerLogout"/>
        </after>

        <actionGroup ref="VertexAddSingleOptionConfigurableProductToCartActionGroup" stepKey="addFirstConfigToCart">
            <argument name="product" value="$$ProductCreateConfigurableProduct1$$" />
            <argument name="optionConfig" value="$$Option1CreateConfigurableProduct1$$" />
            <argument name="attributeConfig" value="$$ProductAttributeCreateConfigurableProduct1$$" />
        </actionGroup>

        <actionGroup ref="VertexAddSingleOptionConfigurableProductToCartActionGroup" stepKey="addSecondConfigToCart">
            <argument name="product" value="$$ProductCreateConfigurableProduct2$$" />
            <argument name="optionConfig" value="$$Option1CreateConfigurableProduct2$$" />
            <argument name="attributeConfig" value="$$ProductAttributeCreateConfigurableProduct2$$" />
        </actionGroup>

        <actionGroup ref="AddSimpleProductToCartActionGroup" stepKey="addSimpleProductToCart">
            <argument name="product" value="$$createSimpleProduct$$" />
        </actionGroup>

        <actionGroup ref="StorefrontOpenCartFromMinicartActionGroup" stepKey="gotoCart"/>
        <actionGroup ref="PlaceOrderWithLoggedUserActionGroup" stepKey="placeOrder">
            <argument name="shippingMethod" value="Flat Rate"/>
        </actionGroup>
        <click stepKey="clickOrderNumber" selector="{{CheckoutSuccessMainSection.orderLink}}"/>

        <actionGroup ref="VertexCheckProductPricingOnStorefrontOrderReviewActionGroup" stepKey="checkConfig1">
            <argument name="product" value="$$ProductCreateConfigurableProduct1$$" />
            <argument name="priceExclTax" value="{{Vertex_100USD_SantaMonica_Values.price}}" />
            <argument name="priceInclTax" value="{{Vertex_100USD_SantaMonica_Values.priceInclTax}}" />
            <argument name="subtotalExclTax" value="{{Vertex_100USD_SantaMonica_Values.subtotal}}" />
            <argument name="subtotalInclTax" value="{{Vertex_100USD_SantaMonica_Values.subtotalInclTax}}" />
        </actionGroup>
        <actionGroup ref="VertexCheckProductPricingOnStorefrontOrderReviewActionGroup" stepKey="checkConfig2">
            <argument name="product" value="$$ProductCreateConfigurableProduct2$$" />
            <argument name="priceExclTax" value="{{Vertex_18USD_SantaMonica_Values.price}}" />
            <argument name="priceInclTax" value="{{Vertex_18USD_SantaMonica_Values.priceInclTax}}" />
            <argument name="subtotalExclTax" value="{{Vertex_18USD_SantaMonica_Values.subtotal}}" />
            <argument name="subtotalInclTax" value="{{Vertex_18USD_SantaMonica_Values.subtotalInclTax}}" />
        </actionGroup>
        <actionGroup ref="VertexCheckProductPricingOnStorefrontOrderReviewActionGroup" stepKey="checkSimpleProduct">
            <argument name="product" value="$$createSimpleProduct$$" />
            <argument name="priceExclTax" value="{{Vertex_100USD_Clothing_SantaMonica_Values.price}}" />
            <argument name="priceInclTax" value="{{Vertex_100USD_Clothing_SantaMonica_Values.priceInclTax}}" />
            <argument name="subtotalExclTax" value="{{Vertex_100USD_Clothing_SantaMonica_Values.subtotal}}" />
            <argument name="subtotalInclTax" value="{{Vertex_100USD_Clothing_SantaMonica_Values.subtotalInclTax}}" />
        </actionGroup>

        <actionGroup ref="VertexCheckTotalsOnStorefrontOrderReviewActionGroup" stepKey="checkTotals">
            <argument name="subtotalExclTax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.subtotal}}" />
            <argument name="subtotalInclTax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.subtotalInclTax}}" />
            <argument name="shippingExclTax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.shipping}}" />
            <argument name="shippingInclTax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.shippingInclTax}}" />
            <argument name="tax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.tax}}" />
            <argument name="totalExclTax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.total}}" />
            <argument name="totalInclTax" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.totalInclTax}}" />
        </actionGroup>
        <actionGroup ref="VertexCheckProductAndShippingTaxTotalsOnStorefrontOrderReviewActionGroup" stepKey="checkTaxSummary">
            <argument name="product" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.productTax}}" />
            <argument name="shipping" value="{{Vertex_100USD_and_18USD_and_100USD_Clothing_SantaMonica_Totals.shippingTax}}" />
        </actionGroup>
    </test>
</tests>
