package com.alipay.easysdk.payment.common;
|
|
import com.alipay.easysdk.TestAccount.Mini;
|
import com.alipay.easysdk.factory.Factory;
|
import com.alipay.easysdk.kernel.util.ResponseChecker;
|
import com.alipay.easysdk.payment.common.models.AlipayDataDataserviceBillDownloadurlQueryResponse;
|
import com.alipay.easysdk.payment.common.models.AlipayTradeCancelResponse;
|
import com.alipay.easysdk.payment.common.models.AlipayTradeCloseResponse;
|
import com.alipay.easysdk.payment.common.models.AlipayTradeCreateResponse;
|
import com.alipay.easysdk.payment.common.models.AlipayTradeFastpayRefundQueryResponse;
|
import com.alipay.easysdk.payment.common.models.AlipayTradeQueryResponse;
|
import com.alipay.easysdk.payment.common.models.AlipayTradeRefundResponse;
|
import org.junit.Before;
|
import org.junit.Test;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.UUID;
|
|
import static org.hamcrest.CoreMatchers.is;
|
import static org.hamcrest.CoreMatchers.not;
|
import static org.hamcrest.CoreMatchers.nullValue;
|
import static org.hamcrest.CoreMatchers.startsWith;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
|
public class ClientTest {
|
@Before
|
public void setUp() {
|
Factory.setOptions(Mini.CONFIG);
|
}
|
|
@Test
|
public void testCreate() throws Exception {
|
String outTradeNo = UUID.randomUUID().toString();
|
AlipayTradeCreateResponse response = Factory.Payment.Common().create(
|
"iPhone6 16G", outTradeNo, "0.01", "2088002656718920");
|
|
assertThat(ResponseChecker.success(response), is(true));
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.outTradeNo, is(outTradeNo));
|
assertThat(response.tradeNo, startsWith("202"));
|
}
|
|
@Test
|
public void testCreateWithOptional() throws Exception {
|
String outTradeNo = UUID.randomUUID().toString();
|
AlipayTradeCreateResponse response = Factory.Payment.Common().optional("goods_detail", getGoodsDetail())
|
.create("iPhone6 16G", outTradeNo, "0.01", "2088002656718920");
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.outTradeNo, is(outTradeNo));
|
assertThat(response.tradeNo, startsWith("202"));
|
}
|
|
private List<Object> getGoodsDetail() {
|
List<Object> goodsDetail = new ArrayList<>();
|
Map<String, Object> goodDetail = new HashMap<>();
|
goodDetail.put("goods_id", "apple-01");
|
goodDetail.put("goods_name", "iPhone6 16G");
|
goodDetail.put("quantity", 1);
|
goodDetail.put("price", "0.01");
|
goodsDetail.add(goodDetail);
|
return goodsDetail;
|
}
|
|
@Test
|
public void testQuery() throws Exception {
|
AlipayTradeQueryResponse response = Factory.Payment.Common().query("6f149ddb-ab8c-4546-81fb-5880b4aaa318");
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.outTradeNo, is("6f149ddb-ab8c-4546-81fb-5880b4aaa318"));
|
}
|
|
@Test
|
public void testCancel() throws Exception {
|
AlipayTradeCancelResponse response = Factory.Payment.Common().cancel(createNewAndReturnOutTradeNo());
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.action, is("close"));
|
}
|
|
@Test
|
public void testClose() throws Exception {
|
AlipayTradeCloseResponse response = Factory.Payment.Common().close(createNewAndReturnOutTradeNo());
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
}
|
|
@Test
|
public void testRefund() throws Exception {
|
AlipayTradeRefundResponse response = Factory.Payment.Common().refund(
|
"64628156-f784-4572-9540-485b7c91b850", "0.01");
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.refundFee, is("0.01"));
|
}
|
|
@Test
|
public void testQueryRefund() throws Exception {
|
AlipayTradeFastpayRefundQueryResponse response = Factory.Payment.Common().queryRefund(
|
"64628156-f784-4572-9540-485b7c91b850", "64628156-f784-4572-9540-485b7c91b850");
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.refundAmount, is("0.01"));
|
assertThat(response.totalAmount, is("0.01"));
|
}
|
|
@Test
|
public void testDownloadBill() throws Exception {
|
AlipayDataDataserviceBillDownloadurlQueryResponse response = Factory.Payment.Common().downloadBill("trade", "2020-01");
|
|
assertThat(response.code, is("10000"));
|
assertThat(response.msg, is("Success"));
|
assertThat(response.subCode, is(nullValue()));
|
assertThat(response.subMsg, is(nullValue()));
|
assertThat(response.httpBody, not(nullValue()));
|
assertThat(response.billDownloadUrl.startsWith("http://dwbillcenter.alipay.com/"), is(true));
|
}
|
|
private String createNewAndReturnOutTradeNo() throws Exception {
|
return Factory.Payment.Common().create("iPhone6 16G", UUID.randomUUID().toString(),
|
"88.88", "2088002656718920").outTradeNo;
|
}
|
}
|