package com.braintreegateway.integrationtest; import com.braintreegateway.*; import com.braintreegateway.SandboxValues.CreditCardNumber; import com.braintreegateway.SandboxValues.TransactionAmount; import com.braintreegateway.testhelpers.TestHelper; import org.junit.Before; import org.junit.Test; import java.util.Calendar; import java.util.Map; import java.util.TimeZone; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class SettlementBatchSummaryIT extends IntegrationTest { private TimeZone eastern_timezone; @Before public void setTimezone() { this.eastern_timezone = TimeZone.getTimeZone("America/New_York"); } @Test public void returnEmptyCollectionIfThereIsNoData() { Calendar settlementDate = Calendar.getInstance(); settlementDate.add(Calendar.YEAR, -5); Result<SettlementBatchSummary> result = gateway.settlementBatchSummary().generate(settlementDate); assertTrue(result.isSuccess()); } @Test public void formatsDateString() { Calendar time = Calendar.getInstance(); time.clear(); time.set(2011, 7, 31); assertEquals(SettlementBatchSummaryRequest.dateString(time), "2011-08-31"); } @Test public void formatsDateStringOnBoundary() { TimeZone tz = TimeZone.getTimeZone("America/New_York"); Calendar time = Calendar.getInstance(tz); time.clear(); time.set(2011, 7, 31, 23, 00); assertEquals(SettlementBatchSummaryRequest.dateString(time), "2011-08-31"); } @Test public void returnsDataForTheGivenSettlementDate() { TransactionRequest request = new TransactionRequest(). amount(TransactionAmount.AUTHORIZE.amount). creditCard(). number(CreditCardNumber.VISA.number). cvv("321"). expirationDate("05/2009"). done(). options(). submitForSettlement(true). done(); Result<Transaction> result = gateway.transaction().sale(request); assertTrue(result.isSuccess()); TestHelper.settle(gateway, result.getTarget().getId()); Result<SettlementBatchSummary> summaryResult = gateway.settlementBatchSummary().generate(Calendar.getInstance(eastern_timezone)); assertTrue(summaryResult.isSuccess()); assertTrue(summaryResult.getTarget().getRecords().size() > 0); Map<String, String> first = summaryResult.getTarget().getRecords().get(0); assertTrue(first.containsKey("kind")); assertTrue(first.containsKey("count")); assertTrue(first.containsKey("amount_settled")); assertTrue(first.containsKey("merchant_account_id")); } @Test public void returnsDataGroupedByTheGivenCustomField() { TransactionRequest request = new TransactionRequest(). amount(TransactionAmount.AUTHORIZE.amount). creditCard(). number(CreditCardNumber.VISA.number). cvv("321"). expirationDate("05/2009"). done(). customField("store_me", "1"). options(). submitForSettlement(true). done(); Result<Transaction> result = gateway.transaction().sale(request); assertTrue(result.isSuccess()); TestHelper.settle(gateway, result.getTarget().getId()); Result<SettlementBatchSummary> summaryResult = gateway.settlementBatchSummary().generate(Calendar.getInstance(eastern_timezone), "store_me"); assertTrue(summaryResult.isSuccess()); assertTrue(summaryResult.getTarget().getRecords().size() > 0); Map<String, String> first = summaryResult.getTarget().getRecords().get(0); assertTrue(first.containsKey("store_me")); } }