# HG changeset patch
# User Silambarasan Sekar <silambarasan@qualiantech.com>
# Date 1457155459 -19800
#      Sat Mar 05 10:54:19 2016 +0530
# Node ID 1931cf0271692a5ed3c514783236d8080580c277
# Parent  80e735a46d9058569a0796480d37d1fa98e503b8
Added automated test 'I32405_DocumentNoForReturn'

diff -r 80e735a46d90 -r 1931cf027169 src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/documentno/I32405_DocumentNoForReturn.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/documentno/I32405_DocumentNoForReturn.java	Sat Mar 05 10:54:19 2016 +0530
@@ -0,0 +1,176 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * 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) 2016 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author Silambarasan 
+ *
+ */
+
+package org.openbravo.test.mobile.retail.pack.selenium.tests.documentno;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.common.selenium.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.common.selenium.javascript.BackboneHelper;
+import org.openbravo.test.mobile.common.selenium.javascript.TestId;
+import org.openbravo.test.mobile.common.selenium.terminals.WebPOSTerminalHelper;
+
+public class I32405_DocumentNoForReturn extends WebPOSTerminalHelper {
+
+  @Test
+  public void test() {
+
+    boolean isTestSuccessful = false;
+
+    final String customer = get(TestId.BUTTON_RECEIPT_CUSTOMER);
+
+    try {
+
+      // Create database changes
+      createDatabaseChanges();
+
+      // Update Terminal with Database Changes
+      updateTerminalAfterDatabaseChange();
+
+      // Adding new receipt
+      tap(TestId.BUTTON_BROWSE);
+      tap(TestId.BUTTON_CATEGORY_MOUNTAINEERING);
+      tap(TestId.BUTTON_PRODUCT_MOUNTAINEERING_AVALANCHETRANSCEIVER);
+      tap(TestId.BUTTON_BROWSE);
+      tap(TestId.BUTTON_CATEGORY_MOUNTAINEERING);
+      tap(TestId.BUTTON_PRODUCT_MOUNTAINEERING_AVALANCHETRANSCEIVER);
+      verify(TestId.LABEL_TOTALTOPAY, "301.00");
+
+      tap(TestId.BUTTON_PAY);
+      tap(TestId.BUTTON_PAY_EXACT);
+      tap(TestId.BUTTON_PAY_DONE);
+      verify(TestId.LABEL_TOTALTOPAY, "0.00");
+
+      final String receiptDocumentNo = BackboneHelper.getDocumentNo();
+
+      tap(TestId.BUTTON_BROWSE);
+      tap(TestId.BUTTON_CATEGORY_MOUNTAINEERING);
+      tap(TestId.BUTTON_PRODUCT_MOUNTAINEERING_AVALANCHETRANSCEIVER);
+      verify(TestId.LABEL_TOTALTOPAY, "150.50");
+      tap(TestId.BUTTON_PAY);
+      tap(TestId.BUTTON_PAY_EXACT);
+      tap(TestId.BUTTON_PAY_DONE);
+      verify(TestId.LABEL_TOTALTOPAY, "0.00");
+
+      // Returning the product using "Return This Receipt "
+
+      tap(TestId.BUTTON_MENU);
+      tap(TestId.BUTTON_MENU_RETURNTHISRECEIPT);
+
+      final String documentNo = BackboneHelper.getDocumentNo();
+
+      tap(TestId.BUTTON_BROWSE);
+      write(TestId.FIELD_SEARCH_TEXT, TestId.BUTTON_SEARCHPRODUCT_INSECTREPELLENT.getRowName());
+      tap(TestId.BUTTON_SEARCH_EXECUTE);
+      tap(TestId.BUTTON_SEARCHPRODUCT_INSECTREPELLENT);
+      verify(TestId.LABEL_TOTALTOPAY, "-14.50");
+      tap(TestId.BUTTON_PAY);
+      tap(TestId.BUTTON_PAY_EXACT);
+      tap(TestId.BUTTON_PAY_DONE);
+      verify(TestId.LABEL_TOTALTOPAY, "0.00");
+
+      tap(TestId.BUTTON_MENU);
+      tap(TestId.BUTTON_MENU_RETURNTHISRECEIPT);
+
+      // Checking document number for returns
+
+      final String[] documentnoHeader = documentNo.split("/");
+      int documentNumber = Integer.parseInt(documentnoHeader[1]) + 1;
+      String newDocumentno = String.format("%s/%07d", documentnoHeader[0], documentNumber);
+      assertThat(BackboneHelper.getDocumentNo(), equalTo(newDocumentno));
+
+      tap(TestId.BUTTON_NEWRECEIPT);
+      tap(TestId.BUTTON_MENU);
+      tap(TestId.BUTTON_MENU_RETURNTHISRECEIPT);
+
+      documentNumber = Integer.parseInt(documentnoHeader[1]) + 2;
+      newDocumentno = String.format("%s/%07d", documentnoHeader[0], documentNumber);
+      assertThat(BackboneHelper.getDocumentNo(), equalTo(newDocumentno));
+
+      tap(TestId.BUTTON_DELETERECEIPT);
+      tap(TestId.BUTTON_DELETERECEIPT_CONFIRM);
+
+      tap(TestId.BUTTON_DELETERECEIPT);
+      tap(TestId.BUTTON_DELETERECEIPT_CONFIRM);
+
+      // Checking Document No for Verified returns
+
+      tap(TestId.BUTTON_MENU);
+      tap(TestId.LABEL_MENU_VERIFIEDRETURN);
+      verify(TestId.LABEL_MENU_VERIFIEDRETURN, "Verified Returns");
+      tap(TestId.BUTTON_MENU_VERIFIEDRETURN);
+      verify(TestId.LABEL_VERIFIEDRETURNS_TITLE, "Receipts");
+      write(TestId.FIELD_SEARCH_RECEIPT, receiptDocumentNo);
+      tap(TestId.BUTTON_VERIFIEDRETURNS_SEARCH);
+      verify(TestId.LABEL_VERIFIEDRETURNS_ROW1_TITLE,
+          String.format("%s - %s", receiptDocumentNo, customer));
+      tap(TestId.BUTTON_VERIFIEDRETURNS_ROW1);
+      verify(TestId.LABEL_POPUP_DOCUMENTNO, receiptDocumentNo);
+      tap(TestId.BUTTON_POPUP_CHECKALL);
+      verify(TestId.BUTTON_POPUP_APPLY, "Apply");
+      tap(TestId.BUTTON_POPUP_APPLY);
+      verify(TestId.LABEL_TOTALTOPAY, "-150.50");
+
+      documentNumber = Integer.parseInt(documentnoHeader[1]) + 1;
+      newDocumentno = String.format("%s/%07d", documentnoHeader[0], documentNumber);
+      assertThat(BackboneHelper.getDocumentNo(), equalTo(newDocumentno));
+
+      tap(TestId.BUTTON_PAY);
+      tap(TestId.BUTTON_PAY_EXACT);
+      tap(TestId.BUTTON_PAY_DONE);
+      verify(TestId.LABEL_TOTALTOPAY, "0.00");
+
+      tap(TestId.BUTTON_MENU);
+      tap(TestId.BUTTON_MENU_RETURNTHISRECEIPT);
+
+      tap(TestId.BUTTON_MENU);
+      isVisible(TestId.BUTTON_MENU_LAYAWAYTHISRECEIPT, false);
+
+      tap(TestId.BUTTON_DELETERECEIPT);
+      tap(TestId.BUTTON_DELETERECEIPT_CONFIRM);
+
+      restoreDatabaseChanges();
+      // Update Terminal with Database Changes
+      updateTerminalAfterDatabaseChange();
+
+      isTestSuccessful = true;
+    } finally {
+      if (!isTestSuccessful) {
+        restoreDatabaseChanges();
+      }
+    }
+
+  }
+
+  private void createDatabaseChanges() {
+    final String updateprefix = "update obpos_applications set returndocno_prefix='VBS1001RT' where value ='VBS1001'";
+    new DatabaseHelperInsertUpdateOrDelete().execute(updateprefix, 1);
+  }
+
+  private void restoreDatabaseChanges() {
+    final String updateprefix = "update obpos_applications set returndocno_prefix=null where value ='VBS1001'";
+    new DatabaseHelperInsertUpdateOrDelete().execute(updateprefix, 1);
+  }
+
+}
