| /******************************************************************************* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| *******************************************************************************/ |
| |
| |
| package org.apache.ofbiz.accounting.thirdparty.ideal; |
| |
| |
| import java.sql.Timestamp; |
| import java.util.Random; |
| |
| import junit.framework.TestCase; |
| import org.apache.ofbiz.base.util.Debug; |
| import org.apache.ofbiz.base.util.UtilDateTime; |
| import org.apache.ofbiz.service.testtools.OFBizTestCase; |
| import com.ing.ideal.connector.IdealConnector; |
| import com.ing.ideal.connector.IdealException; |
| import com.ing.ideal.connector.Transaction; |
| |
| |
| public class IdealPaymentServiceTest extends OFBizTestCase{ |
| |
| public IdealPaymentServiceTest(String name) { |
| super(name); |
| } |
| |
| public static final String module = IdealPaymentServiceTest.class.getName(); |
| |
| // test data |
| protected String orderId = null; |
| protected String orderDiscription = null; |
| protected String issuerId = null; |
| protected String merchantReturnURL = null; |
| protected String configFile = null; |
| |
| @Override |
| protected void setUp() throws Exception { |
| // populate test data |
| configFile = "paymentTest"; |
| orderId = "testOrder1000"; |
| issuerId = "0151"; |
| orderDiscription = "Test Order Description"; |
| merchantReturnURL = "https://localhost:8443/ecommerce"; |
| } |
| |
| public void testDirectoryRequest() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| connector.getIssuerList(); |
| } catch (IdealException ex){ |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| |
| public void testOrderSuccuess() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| int amount = 1; |
| int amountFormat = amount * 100; |
| |
| Transaction transaction = new Transaction(); |
| transaction.setIssuerID(issuerId); |
| transaction.setAmount(Integer.toString(amountFormat)); |
| transaction.setPurchaseID(orderId); |
| transaction.setDescription(orderDiscription); |
| |
| Random random = new Random(); |
| String EntranceCode = Long.toString(Math.abs(random.nextLong()), 36); |
| transaction.setEntranceCode(EntranceCode); |
| transaction.setMerchantReturnURL(merchantReturnURL); |
| Transaction trx = connector.requestTransaction(transaction); |
| String transactionId = trx.getTransactionID(); |
| Transaction transactionCustomer = connector.requestTransactionStatus(transactionId); |
| transactionCustomer.isSuccess(); |
| Debug.logInfo("[testOrderSuccuess] IssuerID Messages from iDEAL: " + transactionCustomer.getIssuerID(), module); |
| Debug.logInfo("[testOrderSuccuess] Status Messages from iDEAL: " + transactionCustomer.getStatus(), module); |
| } catch (IdealException ex) { |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| |
| public void testOrderCancelled() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| int amount = 2; |
| int amountFormat = amount * 100; |
| |
| Transaction transaction = new Transaction(); |
| transaction.setIssuerID(issuerId); |
| transaction.setAmount(Integer.toString(amountFormat)); |
| transaction.setPurchaseID(orderId); |
| transaction.setDescription(orderDiscription); |
| |
| Random random = new Random(); |
| String EntranceCode = Long.toString(Math.abs(random.nextLong()), 36); |
| transaction.setEntranceCode(EntranceCode); |
| transaction.setMerchantReturnURL(merchantReturnURL); |
| Transaction trx = connector.requestTransaction(transaction); |
| String transactionId = trx.getTransactionID(); |
| Transaction transactionCustomer = connector.requestTransactionStatus(transactionId); |
| transactionCustomer.isCancelled(); |
| Debug.logInfo("[testOrderCancelled] IssuerID Messages from iDEAL: " + transactionCustomer.getIssuerID(), module); |
| Debug.logInfo("[testOrderCancelled] Status Messages from iDEAL: " + transactionCustomer.getStatus(), module); |
| } catch (IdealException ex) { |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| |
| public void testOrderExpired() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| int amount = 3; |
| int amountFormat = amount * 100; |
| |
| Transaction transaction = new Transaction(); |
| transaction.setIssuerID(issuerId); |
| transaction.setAmount(Integer.toString(amountFormat)); |
| transaction.setPurchaseID(orderId); |
| transaction.setDescription(orderDiscription); |
| |
| Random random = new Random(); |
| String EntranceCode = Long.toString(Math.abs(random.nextLong()), 36); |
| transaction.setEntranceCode(EntranceCode); |
| transaction.setMerchantReturnURL(merchantReturnURL); |
| Transaction trx = connector.requestTransaction(transaction); |
| String transactionId = trx.getTransactionID(); |
| Transaction transactionCustomer = connector.requestTransactionStatus(transactionId); |
| transactionCustomer.isExpired(); |
| Debug.logInfo("[testOrderExpired] IssuerID Messages from iDEAL: " + transactionCustomer.getIssuerID(), module); |
| Debug.logInfo("[testOrderExpired] Status Messages from iDEAL: " + transactionCustomer.getStatus(), module); |
| } catch (IdealException ex) { |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| |
| public void testOrderOpen() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| int amount = 4; |
| int amountFormat = amount * 100; |
| |
| Transaction transaction = new Transaction(); |
| transaction.setIssuerID(issuerId); |
| transaction.setAmount(Integer.toString(amountFormat)); |
| transaction.setPurchaseID(orderId); |
| transaction.setDescription(orderDiscription); |
| |
| Random random = new Random(); |
| String EntranceCode = Long.toString(Math.abs(random.nextLong()), 36); |
| transaction.setEntranceCode(EntranceCode); |
| transaction.setMerchantReturnURL(merchantReturnURL); |
| Transaction trx = connector.requestTransaction(transaction); |
| String transactionId = trx.getTransactionID(); |
| Transaction transactionCustomer = connector.requestTransactionStatus(transactionId); |
| transactionCustomer.isOpen(); |
| Debug.logInfo("[testOrderOpen] IssuerID Messages from iDEAL: " + transactionCustomer.getIssuerID(), module); |
| Debug.logInfo("[testOrderOpen] Status Messages from iDEAL: " + transactionCustomer.getStatus(), module); |
| } catch (IdealException ex) { |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| |
| public void testOrderFailure() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| int amount = 5; |
| int amountFormat = amount * 100; |
| |
| Transaction transaction = new Transaction(); |
| transaction.setIssuerID(issuerId); |
| transaction.setAmount(Integer.toString(amountFormat)); |
| transaction.setPurchaseID(orderId); |
| transaction.setDescription(orderDiscription); |
| |
| Random random = new Random(); |
| String EntranceCode = Long.toString(Math.abs(random.nextLong()), 36); |
| transaction.setEntranceCode(EntranceCode); |
| transaction.setMerchantReturnURL(merchantReturnURL); |
| Transaction trx = connector.requestTransaction(transaction); |
| String transactionId = trx.getTransactionID(); |
| Transaction transactionCustomer = connector.requestTransactionStatus(transactionId); |
| transactionCustomer.isFailure(); |
| Debug.logInfo("[testOrderFailure] IssuerID Messages from iDEAL: " + transactionCustomer.getIssuerID(), module); |
| Debug.logInfo("[testOrderFailure] Status Messages from iDEAL: " + transactionCustomer.getStatus(), module); |
| } catch (IdealException ex) { |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| |
| public void testOrderError() throws Exception{ |
| try { |
| IdealConnector connector = new IdealConnector(configFile); |
| int amount = 7; |
| int amountFormat = amount * 100; |
| |
| Transaction transaction = new Transaction(); |
| transaction.setIssuerID(issuerId); |
| transaction.setAmount(Integer.toString(amountFormat)); |
| transaction.setPurchaseID(orderId); |
| transaction.setDescription(orderDiscription); |
| |
| Random random = new Random(); |
| String EntranceCode = Long.toString(Math.abs(random.nextLong()), 36); |
| transaction.setEntranceCode(EntranceCode); |
| transaction.setMerchantReturnURL(merchantReturnURL); |
| IdealException ex = new IdealException(""); |
| ex.setErrorCode("SO1000"); |
| Transaction transactionCustomer = connector.requestTransaction(transaction); |
| Debug.logInfo("[testOrderError] IssuerID Messages from iDEAL: " + transactionCustomer.getIssuerID(), module); |
| Debug.logInfo("[testOrderError] Status Messages from iDEAL: " + transactionCustomer.getStatus(), module); |
| } catch (IdealException ex){ |
| TestCase.fail(ex.getMessage()); |
| } |
| } |
| } |