DotNetCore.SKIT.FlurlHttpCl.../test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayExecuteMarketingBusifavorTests.cs
2021-05-10 15:30:00 +08:00

105 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Xunit;
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests
{
public class WechatTenpayExecuteMarketingBusifavorTests
{
[Fact(DisplayName = "[POST] /marketing/busifavor/stocks")]
public async Task CreateMarketingBusifavorStockTest()
{
var request = new Models.CreateMarketingBusifavorStockRequest()
{
StockName = "FAKE_STOCK",
StockType = "NORMAL",
OutRequestNumber = "TEST_ORN_" + DateTimeOffset.Now.ToString("yyyyMMddHHmmssfff"),
StockSendRule = new Models.CreateMarketingBusifavorStockRequest.Types.StockSendRule()
{
MaxCoupons = 1,
MaxCouponsPerUser = 1
},
CouponUseRule = new Models.CreateMarketingBusifavorStockRequest.Types.CouponUseRule()
{
CouponAvailableTime = new Models.CreateMarketingBusifavorStockRequest.Types.CouponUseRule.Types.CouponAvailableTime()
{
AvailableBeginTime = DateTime.Today.AddDays(1),
AvailableEndTime = DateTime.Today.AddDays(31)
},
NormalCoupon = new Models.CreateMarketingBusifavorStockRequest.Types.CouponUseRule.Types.NormalCoupon()
{
DiscountAmount = 1,
TransactionMinimum = 1
},
UseMethod = "OFF_LINE"
},
GoodsName = "FAKE_GOODS",
CouponCodeMode = "WECHATPAY_MODE"
};
var response = await TestClients.Instance.ExecuteCreateMarketingBusifavorStockAsync(request);
Assert.True(response.IsSuccessful());
Assert.NotNull(response.StockId);
}
[Fact(DisplayName = "[GET] /marketing/busifavor/stocks/{stock_id}")]
public async Task GetMarketingBusifavorStockByStockIdTest()
{
var request = new Models.GetMarketingBusifavorStockByStockIdRequest()
{
StockId = "FAKE_STOCKID"
};
var response = await TestClients.Instance.ExecuteGetMarketingBusifavorStockByStockIdAsync(request);
Assert.True(response.IsSuccessful());
Assert.NotNull(response.StockId);
Assert.NotNull(response.StockName);
Assert.NotNull(response.StockType);
Assert.NotNull(response.StockState);
Assert.NotNull(response.StockSendRule);
Assert.NotNull(response.CouponUseRule);
Assert.NotNull(response.CouponCodeMode);
}
[Fact(DisplayName = "[GET] /marketing/busifavor/users/{openid}/coupons")]
public async Task QueryMarketingBusifavorUserCouponsTest()
{
var request = new Models.QueryMarketingBusifavorUserCouponsRequest()
{
AppId = TestConfigs.WechatAppId,
OpenId = TestConfigs.WechatOpenId,
BelongMerchantId = TestConfigs.WechatMerchantId
};
var response = await TestClients.Instance.ExecuteQueryMarketingBusifavorUserCouponsAsync(request);
Assert.True(response.IsSuccessful());
}
[Fact(DisplayName = "[POST] /marketing/busifavor/callbacks")]
public async Task UpdateMarketingBusifavorCallbackTest()
{
var request = new Models.UpdateMarketingBusifavorCallbackRequest()
{
NotifyUrl = "https://FAKE_URL"
};
var response = await TestClients.Instance.ExecuteUpdateMarketingBusifavorCallbackAsync(request);
Assert.True(response.IsSuccessful());
Assert.NotNull(response.NotifyUrl);
}
[Fact(DisplayName = "[GET] /marketing/busifavor/callbacks")]
public async Task GetMarketingBusifavorCallbackTest()
{
var request = new Models.GetMarketingBusifavorCallbackRequest();
var response = await TestClients.Instance.ExecuteGetMarketingBusifavorCallbackAsync(request);
Assert.True(response.IsSuccessful());
Assert.NotNull(response.NotifyUrl);
}
}
}