pschelpdesk/Vendor/Prise.Tests.Integration/Prise.IntegrationTests/MultipleTests.cs
2024-11-04 20:45:34 +01:00

65 lines
1.6 KiB
C#

using System.Net.Http;
using System.Threading.Tasks;
using Prise.IntegrationTestsHost.Models;
using Microsoft.AspNetCore.Mvc.Testing;
using Xunit;
namespace Prise.IntegrationTests
{
public class MultipleTests : CalculationPluginTestsBase
{
public MultipleTests() : base(AppHostWebApplicationFactory.Default()) { }
[Fact]
public async Task PluginA_Works()
{
// Arrange
var payload = new CalculationRequestModel
{
A = 100,
B = 150
};
//Act
var result = await Post<CalculationResponseModel>(_client, "PluginA", "/multiple", payload);
// Assert (100 + 150) + (100 + 150 + 1)
Assert.Equal(501, result.Result);
}
[Fact]
public async Task PluginB_Works()
{
// Arrange
var payload = new CalculationRequestModel
{
A = 150,
B = 50
};
//Act
var result = await Post<CalculationResponseModel>(_client, "PluginB", "/multiple", payload);
// Assert 150 - 50
Assert.Equal(100, result.Result);
}
[Fact]
public async Task PluginC_Works()
{
// Arrange
var payload = new CalculationRequestModel
{
A = 50,
B = 2
};
//Act
var result = await Post<CalculationResponseModel>(_client, "PluginC", "/multiple", payload);
// Assert 50 * 2 + 10% discount
Assert.Equal(110, result.Result);
}
}
}