package com.braintreegateway.integrationtest;
import java.lang.reflect.Field;
import com.braintreegateway.*;
import com.braintreegateway.util.NodeWrapperFactory;
import com.braintreegateway.testhelpers.CalendarTestUtils;
import org.junit.Test;
import static org.junit.Assert.*;
import java.text.ParseException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class DisbursementIT extends IntegrationTest {
@Test
public void createDisbursement() {
String xml = "<disbursement>" +
"<id>123456</id>" +
"<transaction-ids type=\"array\">" +
"<item>sub_merchant_transaction</item>" +
"</transaction-ids>" +
"<success type=\"boolean\">false</success>" +
"<retry type=\"boolean\">false</retry>" +
"<merchant-account>" +
"<id>sandbox_sub_merchant_account</id>" +
"<currency-iso-code>USD</currency-iso-code>" +
"<sub-merchant-account type=\"boolean\">true</sub-merchant-account>" +
"<status>active</status>" +
"</merchant-account>" +
"<amount>100.00</amount>" +
"<disbursement-date type=\"date\">2013-04-10</disbursement-date>" +
"<exception-message>invalid_account_number</exception-message>" +
"<follow-up-action>update_funding_information</follow-up-action>" +
"</disbursement>";
Disbursement disbursement = new Disbursement(NodeWrapperFactory.instance.create(xml));
assertNotNull(disbursement);
List<String> transactionIds = new ArrayList<String>();
transactionIds.add("sub_merchant_transaction");
assertEquals("123456", disbursement.getId());
assertEquals(false, disbursement.getSuccess());
assertEquals(false, disbursement.getRetry());
assertEquals(new BigDecimal("100.00"), disbursement.getAmount());
assertEquals("update_funding_information", disbursement.getFollowUpAction());
assertEquals("invalid_account_number", disbursement.getExceptionMessage());
assertEquals(transactionIds, disbursement.getTransactionIds());
assertEquals("sandbox_sub_merchant_account", disbursement.getMerchantAccount().getId());
assertEquals(2013, disbursement.getDisbursementDate().get(Calendar.YEAR));
}
@Test
public void findTransactions() {
String xml = "<disbursement>" +
"<id>123456</id>" +
"<transaction-ids type=\"array\">" +
"<item>sub_merchant_transaction</item>" +
"</transaction-ids>" +
"<success type=\"boolean\">false</success>" +
"<retry type=\"boolean\">false</retry>" +
"<merchant-account>" +
"<id>sandbox_sub_merchant_account</id>" +
"<currency-iso-code>USD</currency-iso-code>" +
"<sub-merchant-account type=\"boolean\">true</sub-merchant-account>" +
"<status>active</status>" +
"</merchant-account>" +
"<amount>100.00</amount>" +
"<disbursement-date type=\"date\">2013-04-10</disbursement-date>" +
"<exception-message>invalid_account_number</exception-message>" +
"<follow-up-action>update_funding_information</follow-up-action>" +
"</disbursement>";
Disbursement disbursement = new Disbursement(NodeWrapperFactory.instance.create(xml));
assertNotNull(disbursement);
ResourceCollection<Transaction> collection = disbursement.getTransactions(this.gateway);
assertEquals(1, collection.getMaximumSize());
assertEquals("sub_merchant_transaction", collection.getFirst().getId());
}
}