You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong/vendor/alipaysdk/easysdk/csharp/UnitTest/Payment/Common/ClientTest.cs

154 lines
5.9 KiB

using NUnit.Framework;
using Alipay.EasySDK.Factory;
using Alipay.EasySDK.Payment.Common.Models;
using System;
using System.Collections.Generic;
using Alipay.EasySDK.Kernel.Util;
namespace UnitTest.Payment.Common
{
public class ClientTest
{
[SetUp]
public void SetUp()
{
Factory.SetOptions(TestAccount.Mini.CONFIG);
}
[Test]
public void TestCreate()
{
string outTradeNo = Guid.NewGuid().ToString();
AlipayTradeCreateResponse response = Factory.Payment.Common().Create("iPhone6 16G",
outTradeNo, "88.88", "2088002656718920");
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.Null(response.SubCode);
Assert.Null(response.SubMsg);
Assert.NotNull(response.HttpBody);
Assert.AreEqual(response.OutTradeNo, outTradeNo);
Assert.True(response.TradeNo.StartsWith("202"));
}
[Test]
public void TestCreateWithOptional()
{
string outTradeNo = Guid.NewGuid().ToString();
AlipayTradeCreateResponse response = Factory.Payment.Common().Optional("goods_detail", GetGoodsDetail())
.Create("iPhone6 16G", outTradeNo, "0.01", "2088002656718920");
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.Null(response.SubCode);
Assert.Null(response.SubMsg);
Assert.NotNull(response.HttpBody);
Assert.AreEqual(response.OutTradeNo, outTradeNo);
Assert.True(response.TradeNo.StartsWith("202"));
}
private List<object> GetGoodsDetail()
{
List<object> goodsDetail = new List<object>();
Dictionary<string, object> goodDetail = new Dictionary<string, object>();
goodDetail.Add("goods_id", "apple-01");
goodDetail.Add("goods_name", "iPhone6 16G");
goodDetail.Add("quantity", 1);
goodDetail.Add("price", "0.01");
goodsDetail.Add(goodDetail);
return goodsDetail;
}
[Test]
public void TestQuery()
{
AlipayTradeQueryResponse response = Factory.Payment.Common().Query("6f149ddb-ab8c-4546-81fb-5880b4aaa318");
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.Null(response.SubCode);
Assert.Null(response.SubMsg);
Assert.NotNull(response.HttpBody);
Assert.AreEqual(response.OutTradeNo, "6f149ddb-ab8c-4546-81fb-5880b4aaa318");
}
[Test]
public void TestCancel()
{
AlipayTradeCancelResponse response = Factory.Payment.Common().Cancel(CreateNewAndReturnOutTradeNo());
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.Null(response.SubCode);
Assert.Null(response.SubMsg);
Assert.NotNull(response.HttpBody);
Assert.AreEqual(response.Action, "close");
}
[Test]
public void TestClose()
{
AlipayTradeCloseResponse response = Factory.Payment.Common().Close(CreateNewAndReturnOutTradeNo());
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.Null(response.SubCode);
Assert.Null(response.SubMsg);
Assert.NotNull(response.HttpBody);
}
[Test]
public void TestRefund()
{
AlipayTradeRefundResponse response = Factory.Payment.Common().Refund(CreateNewAndReturnOutTradeNo(), "0.01");
Assert.IsFalse(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "40004");
Assert.AreEqual(response.Msg, "Business Failed");
Assert.AreEqual(response.SubCode, "ACQ.TRADE_STATUS_ERROR");
Assert.AreEqual(response.SubMsg, "交易状态不合法");
Assert.NotNull(response.HttpBody);
}
[Test]
public void TestQueryRefund()
{
AlipayTradeFastpayRefundQueryResponse response = Factory.Payment.Common().QueryRefund(
"64628156-f784-4572-9540-485b7c91b850", "64628156-f784-4572-9540-485b7c91b850");
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.IsNull(response.SubCode);
Assert.IsNull(response.SubMsg);
Assert.NotNull(response.HttpBody);
Assert.AreEqual(response.RefundAmount, "0.01");
Assert.AreEqual(response.TotalAmount, "0.01");
}
[Test]
public void TestDownloadBill()
{
AlipayDataDataserviceBillDownloadurlQueryResponse response = Factory.Payment.Common().DownloadBill("trade", "2020-01");
Assert.IsTrue(ResponseChecker.Success(response));
Assert.AreEqual(response.Code, "10000");
Assert.AreEqual(response.Msg, "Success");
Assert.IsNull(response.SubCode);
Assert.IsNull(response.SubMsg);
Assert.NotNull(response.HttpBody);
Assert.IsTrue(response.BillDownloadUrl.StartsWith("http://dwbillcenter.alipay.com/"));
}
private string CreateNewAndReturnOutTradeNo()
{
return Factory.Payment.Common().Create("iPhone6 16G", Guid.NewGuid().ToString(),
"88.88", "2088002656718920").OutTradeNo;
}
}
}