<?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="VertexCheckProductWithCommodityCodeOnAdminOrderViewTest">
        <annotations>
            <features value="Vertex"/>
            <group value="Vertex"/>
            <group value="VRTX-775"/>
            <testCaseId value="VRTX-775"/>

            <stories value="As a merchant, I should be able to specify commodity codes for my products"/>
            <title value="Validate Taxes on Admin Order View, when a product has commodity code set"/>
            <description value="Validate that a product with commodity code set show the correct tax on Admin Order View"/>

            <severity value="MAJOR"/>
        </annotations>
        <before>
            <actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
            <actionGroup ref="VertexTaxConfigInvoiceCreated" stepKey="setupTaxConfigWhenInvoiceCreated"/>
            <actionGroup ref="VertexTaxDefaultConfig" stepKey="setupDefaultVertexTestConfiguration"/>
            <actionGroup ref="ClearCacheActionGroup" stepKey="clearCache"/>
            <createData entity="_defaultCategory" stepKey="createCategory"/>

            <createData entity="VertexSimpleProductCommodityCode" stepKey="createSimpleProduct">
                <field key="price">{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Values.price}}</field>
                <requiredEntity createDataKey="createCategory"/>
            </createData>

            <createData entity="Vertex_Customer_JacindaArdern" stepKey="createCustomer"/>

            <actionGroup ref="LoginToStorefrontActionGroup" stepKey="customerLogin">
                <argument name="Customer" value="$$createCustomer$$"/>
            </actionGroup>

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

            <actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="gotoCheckout"/>

            <actionGroup ref="CheckoutSelectFlatRateShippingMethodActionGroup" stepKey="selectShippingMethod"/>

            <waitForElement selector="{{CheckoutShippingSection.next}}" stepKey="waitForNextButton"/>
            <click selector="{{CheckoutShippingSection.next}}" stepKey="clickNext"/>

            <waitForElement selector="{{CheckoutPaymentSection.paymentSectionTitle}}" stepKey="waitForPaymentSectionLoaded"/>
            <seeInCurrentUrl url="{{CheckoutPage.url}}/#payment" stepKey="assertCheckoutPaymentUrl"/>

            <actionGroup ref="VertexCheckTotalsInCheckout" stepKey="checkTotals">
                <argument name="subtotalExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.subtotal}}"/>
                <argument name="subtotalInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.subtotalInclTax}}"/>
                <argument name="shippingExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.shipping}}"/>
                <argument name="shippingInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.shippingInclTax}}"/>
                <argument name="tax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.tax}}"/>
                <argument name="totalExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.total}}"/>
                <argument name="totalInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.totalInclTax}}"/>
            </actionGroup>

            <actionGroup ref="ClickPlaceOrderActionGroup" stepKey="placeOrder"/>
            <grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="orderNumber"/>

            <amOnPage url="{{AdminOrdersPage.url}}" stepKey="goToAdminOrder"/>
            <actionGroup ref="AdminOrdersGridClearFiltersActionGroup" stepKey="clearFilters"/>
            <actionGroup ref="OpenOrderByIdActionGroup" stepKey="openOrder">
                <argument name="orderId" value="$orderNumber"/>
            </actionGroup>
        </before>
        <after>
            <createData entity="DefaultTaxConfig" stepKey="defaultConf"/>
            <actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="customerLogout"/>
            <deleteData stepKey="deleteCategory" createDataKey="createCategory"/>
            <deleteData stepKey="deleteCustomer" createDataKey="createCustomer"/>
            <deleteData stepKey="deleteProduct" createDataKey="createSimpleProduct"/>
            <actionGroup ref="logout" stepKey="logoutOfAdmin"/>
        </after>

        <actionGroup ref="VertexCheckTotalsInAdminOrderView" stepKey="checkAdminOrderTotals">
            <argument name="subtotalExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.subtotal}}"/>
            <argument name="subtotalInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.subtotalInclTax}}"/>
            <argument name="shippingExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.shipping}}"/>
            <argument name="shippingInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.shippingInclTax}}"/>
            <argument name="tax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.tax}}"/>
            <argument name="totalExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.total}}"/>
            <argument name="totalInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.totalInclTax}}"/>
        </actionGroup>
    </test>
</tests>
