blob: 9881e0fe42df79ced4795aaedd48288f71af8feb [file] [log] [blame]
/*******************************************************************************
* 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());
}
}
}