# HG changeset patch
# User Shivanand Madiwalar <shivanand.madiwalar@promantia.com>
# Date 1479122299 -19800
#      Mon Nov 14 16:48:19 2016 +0530
# Node ID 34cca9370d4ff6e6d851df594f0a4192fc348fa2
# Parent  92e8bd6923043cc017855e5bfedc86bb36fd19aa
Verifies  Issue 33390 : Test FOr Buy X Pay Y Logic For The Non-Grouped Product .

SOme Improvement Has Been DOne To Avoid Guessing way Of Verifying The Values .

diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/discountsandpromotions/I33390_BuyXPayYSameNonGroupProduct.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/discountsandpromotions/I33390_BuyXPayYSameNonGroupProduct.java
--- a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/discountsandpromotions/I33390_BuyXPayYSameNonGroupProduct.java
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/discountsandpromotions/I33390_BuyXPayYSameNonGroupProduct.java
@@ -21,8 +21,12 @@
  */
 package org.openbravo.test.mobile.retail.pack.selenium.tests.discountsandpromotions;
 
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
 import org.junit.Test;
 import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperSelect;
 import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
 import org.openbravo.test.mobile.retail.pack.selenium.terminals.WebPOSTerminalHelper;
 
@@ -30,8 +34,12 @@
 
   String productName = TestIdPack.BUTTON_PRODUCT_BACKPACKSANDTRAVEL_SUNCREAMLIPSTICK.getRowName();
   private final String discountName = "-- Sun Cream 3x2";
+  private final String discountNameWith2Chunks = "-- (2x) Sun Cream 3x2";
   private final String discountAmtRow1 = "-12.50";
   private final String discountAmtRow2 = "-12.50";
+  String initialX = null;
+  String initialY = null;
+  String offer_id = null;
 
   @Test
   public void test() {
@@ -76,12 +84,12 @@
     verify(TestIdPack.LABEL_PRODUCT_BACKPACKSANDTRAVEL_SUNCREAMLIPSTICK_PRICE, "12.50");
     verify(TestIdPack.LABEL_RECEIPT_ROW1_TITLE, productName);
     verify(TestIdPack.LABEL_RECEIPT_ROW1_QTY, "1");
-    verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTNAME, discountName);
+    verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTNAME, discountNameWith2Chunks);
     verify(TestIdPack.LABEL_RECEIPT_ROW1_DISCOUNTAMOUNT, discountAmtRow1);
 
     verify(TestIdPack.LABEL_RECEIPT_ROW2_TITLE, productName);
     verify(TestIdPack.LABEL_RECEIPT_ROW2_QTY, "1");
-    verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTNAME, discountName);
+    verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTNAME, discountNameWith2Chunks);
     verify(TestIdPack.LABEL_RECEIPT_ROW2_DISCOUNTAMOUNT, discountAmtRow2);
     verify(TestIdPack.LABEL_TOTALTOPAY, "50.00");
 
@@ -92,17 +100,40 @@
 
   @Override
   public void beforeWithReload() {
-    final String sqlupdate1 = String.format("update m_product set EM_Obpos_Groupedproduct='N'"
-        + "where name = '%s'", productName);
-    new DatabaseHelperInsertUpdateOrDelete().execute(sqlupdate1, 1);
+
+    final String query = String
+        .format("select em_obdisc_x,em_obdisc_y,m.m_offer_id  from m_offer  m"
+            + " left join m_offer_product mp on  mp.m_offer_id=m.m_offer_id"
+            + "  where m.m_offer_type_id ='E08EE3C23EBA49358A881EF06C139D63' and mp.m_product_id='288935D96601435BBDE66A231B6E066C'");
+
+    new DatabaseHelperSelect() {
+      @Override
+      protected void yieldResultSet(final ResultSet rs) throws SQLException {
+        initialX = (String) rs.getString("em_obdisc_x");
+        initialY = (String) rs.getString("em_obdisc_y");
+        offer_id = (String) rs.getString("m_offer_id");
+
+      }
+    }.execute(query, 1);
+
+    final String sqlUpdateXYParams = String.format(
+        "update m_offer set em_obdisc_x=3 ,em_obdisc_y=2" + "where m_offer_id = '%s'", offer_id);
+    new DatabaseHelperInsertUpdateOrDelete().execute(sqlUpdateXYParams, 1);
+    final String sqlUpdateProduct = String.format(
+        "update m_product set EM_Obpos_Groupedproduct='N'" + "where name = '%s'", productName);
+    new DatabaseHelperInsertUpdateOrDelete().execute(sqlUpdateProduct, 1);
 
   }
 
   @Override
   public void afterWithReload() {
-    final String sqlupdate1 = String.format("update m_product set EM_Obpos_Groupedproduct='Y'"
-        + "where name = '%s'", productName);
+    final String sqlupdate1 = String.format(
+        "update m_product set EM_Obpos_Groupedproduct='Y', EM_Obpos_Scale='N'"
+            + " where name = '%s'", productName);
     new DatabaseHelperInsertUpdateOrDelete().execute(sqlupdate1, 1);
+    final String sqlUpdateXYParams = String.format("update m_offer set em_obdisc_x=" + initialX
+        + ",em_obdisc_y=" + initialY + " where m_offer_id = '%s'", offer_id);
+    new DatabaseHelperInsertUpdateOrDelete().execute(sqlUpdateXYParams, 1);
 
   }
 }
