# HG changeset patch
# User Alejandro <alekosmp86@gmail.com>
# Date 1569608971 14400
#      Fri Sep 27 14:29:31 2019 -0400
# Node ID 7951fbb14561e4da062612e03c0cac2ed670f20b
# Parent  4dff611f624e0203dea6ff54bd2332ad0c217347
Related to issue 39823: fixed automated test I38074_VerifyComboFixedPriceDiscounts

diff --git a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/discounts_combo/I38074_VerifyComboFixedPriceDiscounts.java b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/discounts_combo/I38074_VerifyComboFixedPriceDiscounts.java
--- a/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/discounts_combo/I38074_VerifyComboFixedPriceDiscounts.java
+++ b/src-test/org/openbravo/test/mobile/retail/extmodules/selenium/tests/discounts_combo/I38074_VerifyComboFixedPriceDiscounts.java
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo S.L.U.
- * All portions are Copyright (C) 2017 Openbravo S.L.U.
+ * All portions are Copyright (C) 2017-2019 Openbravo S.L.U.
  * All Rights Reserved.
  * Contributor(s):
  ************************************************************************
@@ -22,63 +22,35 @@
 
 package org.openbravo.test.mobile.retail.extmodules.selenium.tests.discounts_combo;
 
-import java.math.BigDecimal;
-
 import org.junit.Test;
-import org.openbravo.test.mobile.core.junit.TestAnnotations;
 import org.openbravo.test.mobile.retail.extmodules.selenium.terminals.WebPOSExtModulesTerminalHelper;
 import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
-import org.openbravo.test.mobile.retail.mobilecore.javascript.BackboneHelper;
-import org.openbravo.test.mobile.retail.mobilecore.utils.RetailUtils;
 import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
 
 public class I38074_VerifyComboFixedPriceDiscounts extends WebPOSExtModulesTerminalHelper {
-  final static String COMBOFIXEDPRICE_TYPE_ID = "71895FA82C9645949CB752564FB1389D";
-  final static String AVALANCHE_TRANSCEIVER_ID = "934E7D7587EC4C7A9E9FF58F0382D450";
-  final static String BALACLAVA_CAP_ID = "4C0563C352A3438FB7F80DE79B15D410";
-  final static String CAMERA_BAG_ID = "EB0E9362859C4A479EC33D68D240513B";
-  final static String AVALANCHE_TRANSCEIVER_NAME = "Avalanche transceiver";
-  final static String BALACLAVA_CAP_NAME = "Balaclava cap";
   final static String CAMERA_BAG_NAME = "Camera bag";
-
-  final static String TEST_FIXEDPRICE_DISCOUNT_ID = RetailUtils.getRandomUUID();
-  final static String TEST_FIXEDPRICE_DISCOUNT_NAME = "TestFixedPriceDiscount";
-  final static String COMBO_FAMILY_ID = RetailUtils.getRandomUUID();
+  final static String TEST_FIXEDPRICE_DISCOUNT_ID = "C6BED7EB399D4D2B89F4DD1C8CB589DC";
+  final static String TEST_FIXEDPRICE_DISCOUNT_NAME = "Photography Combo";
 
   @Test
-  @TestAnnotations(waitFixOf = 39823)
   public void test() {
-    // add products to trigger discount
-    addProduct(AVALANCHE_TRANSCEIVER_NAME);
-    addProduct(BALACLAVA_CAP_NAME);
+    // add product to trigger discount
     addProduct(CAMERA_BAG_NAME);
 
     // verify the discounts have been applied
     verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTNAME, "-- " + TEST_FIXEDPRICE_DISCOUNT_NAME);
-    verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTAMOUNT, "-145.94");
-    verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTNAME_EXTMOD,
-        "-- " + TEST_FIXEDPRICE_DISCOUNT_NAME);
-    verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTAMOUNT_EXTMOD, "-163.88");
-    verify(TestIdPack.LABEL_RECEIPT_ROW3_DISCOUNTNAME, "-- " + TEST_FIXEDPRICE_DISCOUNT_NAME);
-    verify(TestIdPack.LABEL_RECEIPT_ROW3_DISCOUNTAMOUNT, "-10.18");
-    verify(TestIdPack.LABEL_RECEIPT_TOTAL_QTY, "3");
-    verify(TestIdPack.LABEL_RECEIPT_TOTAL_GROSS, "10.00");
+    verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTAMOUNT, "24.50");
+    verify(TestIdPack.LABEL_RECEIPT_TOTAL_QTY, "1");
+    verify(TestIdPack.LABEL_RECEIPT_TOTAL_GROSS, "35.00");
 
-    // add products again
-    addProduct(AVALANCHE_TRANSCEIVER_NAME);
-    addProduct(BALACLAVA_CAP_NAME);
+    // add product again
     addProduct(CAMERA_BAG_NAME);
 
     // verify the discounts have been updated correctly
     verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTNAME, "-- (2x) " + TEST_FIXEDPRICE_DISCOUNT_NAME);
-    verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTAMOUNT, "-583.76");
-    verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTNAME_EXTMOD,
-        "-- (2x) " + TEST_FIXEDPRICE_DISCOUNT_NAME);
-    verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTAMOUNT_EXTMOD, "-655.52");
-    verify(TestIdPack.LABEL_RECEIPT_ROW3_DISCOUNTNAME, "-- (2x) " + TEST_FIXEDPRICE_DISCOUNT_NAME);
-    verify(TestIdPack.LABEL_RECEIPT_ROW3_DISCOUNTAMOUNT, "599.28");
-    verify(TestIdPack.LABEL_RECEIPT_TOTAL_QTY, "6");
-    verify(TestIdPack.LABEL_RECEIPT_TOTAL_GROSS, "20.00");
+    verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTAMOUNT, "49.00");
+    verify(TestIdPack.LABEL_RECEIPT_TOTAL_QTY, "2");
+    verify(TestIdPack.LABEL_RECEIPT_TOTAL_GROSS, "70.00");
 
     // delete the ticket
     tap(TestIdPack.BUTTON_DELETERECEIPT);
@@ -87,18 +59,13 @@
 
   @Override
   public void beforeWithReload() {
-    createComboFixedPriceDiscount(TEST_FIXEDPRICE_DISCOUNT_NAME, BigDecimal.TEN);
-    createFamilyForComboDiscount("TestDiscountFamily");
-    addProductToFamily(COMBO_FAMILY_ID, AVALANCHE_TRANSCEIVER_ID);
-    addProductToFamily(COMBO_FAMILY_ID, BALACLAVA_CAP_ID);
-    addProductToFamily(COMBO_FAMILY_ID, CAMERA_BAG_ID);
+    setActiveDiscount(TEST_FIXEDPRICE_DISCOUNT_ID, true);
+    refreshMasterdata();
   }
 
   @Override
   public void afterWithReload() {
-    deleteComboFamilyProducts();
-    deleteComboFamily();
-    deleteComboFixedPriceDiscount();
+    setActiveDiscount(TEST_FIXEDPRICE_DISCOUNT_ID, false);
   }
 
   private void addProduct(String productName) {
@@ -110,63 +77,9 @@
     tap(TestIdPack.BUTTON_SEARCHPRODUCT_FIRSTROW);
   }
 
-  private void createComboFixedPriceDiscount(String discountName, BigDecimal fixedPrice) {
-    String clientId = BackboneHelper.getTerminalValue("client");
-    String sql = String.format(
-        "insert into m_offer (m_offer_id, ad_client_id, ad_org_id, createdby, updatedby, name, datefrom, "
-            + "bpartner_selection, bp_group_selection, product_selection, prod_cat_selection, pricelist_selection, "
-            + "m_offer_type_id, em_obcombo_combofixprice) values ('%s', '%s', '0', '100', '100', '%s', TO_DATE(NOW()), "
-            + "'Y', 'Y', 'Y', 'Y', 'Y', '%s', '%s')",
-        TEST_FIXEDPRICE_DISCOUNT_ID, clientId, discountName, COMBOFIXEDPRICE_TYPE_ID, fixedPrice);
-
-    new DatabaseHelperInsertUpdateOrDelete() {
-    }.execute(sql, 1);
-  }
-
-  private void createFamilyForComboDiscount(String familyName) {
-    String clientId = BackboneHelper.getTerminalValue("client");
-
-    String sql = String.format(
-        "insert into obcombo_family (obcombo_family_id, ad_client_id, ad_org_id, createdby, updatedby, "
-            + "m_offer_id, name, discount_type, quantity) values ('%s', '%s', '0', '100', '100', '%s', '%s', '%s', '%s')",
-        COMBO_FAMILY_ID, clientId, TEST_FIXEDPRICE_DISCOUNT_ID, familyName, "COMBOFIXPRICE", 3);
-
-    new DatabaseHelperInsertUpdateOrDelete() {
-    }.execute(sql, 1);
-  }
-
-  private void addProductToFamily(String comboFamilyId, String productId) {
-    String comboProductId = RetailUtils.getRandomUUID();
-    String clientId = BackboneHelper.getTerminalValue("client");
-
-    String sql = String.format(
-        "insert into obcombo_product (obcombo_product_id, ad_client_id, ad_org_id, createdby, updatedby, obcombo_family_id, m_product_id) "
-            + "values ('%s', '%s', '0', '100', '100', '%s', '%s')",
-        comboProductId, clientId, comboFamilyId, productId);
-
-    new DatabaseHelperInsertUpdateOrDelete() {
-    }.execute(sql, 1);
-  }
-
-  private void deleteComboFamilyProducts() {
-    String sql = String.format("delete from obcombo_product where obcombo_family_id = '%s'",
-        COMBO_FAMILY_ID);
-
-    new DatabaseHelperInsertUpdateOrDelete() {
-    }.execute(sql, DatabaseHelperInsertUpdateOrDelete.UNKNOWN_AFFECTED_ROWS);
-  }
-
-  private void deleteComboFamily() {
-    String sql = String.format("delete from obcombo_family where m_offer_id = '%s'",
-        TEST_FIXEDPRICE_DISCOUNT_ID);
-
-    new DatabaseHelperInsertUpdateOrDelete() {
-    }.execute(sql, 1);
-  }
-
-  private void deleteComboFixedPriceDiscount() {
-    String sql = String.format("delete from m_offer where m_offer_id = '%s'",
-        TEST_FIXEDPRICE_DISCOUNT_ID);
+  private void setActiveDiscount(String discountId, boolean active) {
+    String sql = String.format("update m_offer set isactive = '%s' where m_offer_id = '%s'",
+        active ? "Y" : "N", discountId);
 
     new DatabaseHelperInsertUpdateOrDelete() {
     }.execute(sql, 1);
