<?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="VertexCheckProductWithCommodityCodeAdminOrderCreateTest">
        <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 Create, when a product has commodity code set"/>
            <description value="Validate that a product with commodity code set show the correct tax on Admin Order Create"/>

            <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="createProduct">
                <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="NavigateToNewOrderPageExistingCustomerActionGroup" stepKey="startNewOrder">
                <argument name="customer" value="$$createCustomer$$"/>
            </actionGroup>

            <actionGroup ref="AddSimpleProductToOrderActionGroup" stepKey="addProductToOrder">
                <argument name="product" value="$$createProduct$$"/>
            </actionGroup>

            <actionGroup ref="AdminOrderCreateSelectShippingBillingSameAddressActionGroup" stepKey="selectShippingAddress">
                <argument name="addressId" value="$$createCustomer.addresses[1][id]$$"/>
            </actionGroup>

            <actionGroup ref="OrderSelectFlatRateShippingActionGroup" stepKey="selectShipping"/>

            <actionGroup ref="SelectCheckMoneyPaymentMethodActionGroup" stepKey="selectPayment"/>
        </before>
        <after>
            <createData entity="DefaultTaxConfig" stepKey="defaultConf"/>
            <deleteData stepKey="deleteProduct" createDataKey="createProduct"/>
            <deleteData stepKey="deleteCategory" createDataKey="createCategory"/>
            <deleteData stepKey="deleteCustomer" createDataKey="createCustomer"/>
            <actionGroup ref="logout" stepKey="logoutOfAdmin"/>
        </after>

        <actionGroup ref="VertexCheckProductPricingInAdminCreate" stepKey="checkProductPricing">
            <argument name="product" value="$$createProduct$$"/>
            <argument name="priceExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Values.price}}"/>
            <argument name="priceInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Values.priceInclTax}}"/>
            <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="rowSubtotalExclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.subtotal}}"/>
            <argument name="rowSubtotalInclTax" value="{{Vertex_100USD_53100000_UNSPSC_Commodity_Code_Totals.subtotalInclTax}}"/>
        </actionGroup>
        <actionGroup ref="VertexCheckTotalsInAdminCreate" 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>
    </test>
</tests>
