using FluentAssertions; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos; using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.Mall; using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos.VipTask; using Ray.BiliBiliTool.Agent.BiliBiliAgent.Interfaces; using Ray.BiliBiliTool.Console; using Xunit.Abstractions; namespace Ray.BiliBiliTool.Agent.FunctionalTests; public class VipBigPointApiTest { private readonly IVipBigPointApi _api; private readonly ITestOutputHelper _output; private readonly BiliCookie _ck; public VipBigPointApiTest(ITestOutputHelper output) { _output = output; var envs = new List { "--ENVIRONMENT=Development", //"HTTP_PROXY=localhost:8888", //"HTTPS_PROXY=localhost:8888" }; IHost host = Program.CreateHost(envs.ToArray()); _ck = host.Services.GetRequiredService(); _api = host.Services.GetRequiredService(); } [Fact] public async Task GetTaskListAsync_Normal_Success() { // Arrange // Act BiliApiResponse re = await _api.GetCombineAsync(null); // Assert re.Code.Should().Be(0); re.Data.Should().NotBeNull(); re.Data.Task_info.Modules.Should().HaveCountGreaterThan(0); } [Fact] public async Task SignAsync_Normal_Success() { // Arrange var req = new SignRequest() { csrf = _ck.BiliJct }; // Act BiliApiResponse re = await _api.SignAsync(req, null); _output.WriteLine(re.ToJsonStr()); // Assert re.Code.Should().Be(0); re.Message.Should().BeEquivalentTo("success"); } [Fact] public async Task GetVouchersInfoAsync_Normal_Success() { // Arrange // Act var re = await _api.GetVouchersInfoAsync(null); // Assert re.Code.Should().Be(0); re.Data.List.Should().Contain(x => x.Type == 9); } [Fact] public async Task GetVipExperienceAsync_Normal_Success() { // Arrange var req = new VipExperienceRequest() { csrf = _ck.BiliJct }; // Act BiliApiResponse re = await _api.ObtainVipExperienceAsync(req, null); // Assert re.Code.Should() .BeOneOf( new List { 0, 6034005, //任务未完成 69198, //用户经验已经领取 } ); } [Fact] public async Task CompleteAsync_Normal_Success() { // Arrange var req = new ReceiveOrCompleteTaskRequest("dress-view"); // Act var re = await _api.CompleteAsync(req, null); // Assert re.Code.Should().Be(0); } }