<?xml version="1.0" encoding="UTF-8" ?>
<!--
  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.
  -->

<test-suite suite-name="paymenttests"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/test-suite.xsd">

    <test-case case-name="auto-payment-tests">
        <simple-method-test location="component://accounting/minilang/test/AutoPaymentTests.xml"/>
    </test-case>
    
    <!-- enable when sandbox is available and configured -->
    <!-- test-case case-name="cc-tests">
        <junit-test-suite class-name="org.apache.ofbiz.accounting.thirdparty.securepay.SecurePayServiceTest"/>
    </test-case-->
    
    <!-- enable when you get acquirer.keystore, merchant.crt, merchant.keystore from sandbox and copy to /applications/accounting/config and configured -->
    <!-- <test-case case-name="ideal-payment-tests">
        <junit-test-suite class-name="org.apache.ofbiz.accounting.thirdparty.ideal.IdealPaymentServiceTest"/>
    </test-case>-->
    
</test-suite>
