51 lines
1.7 KiB
C#
51 lines
1.7 KiB
C#
using Exchanger.Core.Configuration;
|
|
using NUnit.Framework;
|
|
|
|
namespace Exchanger.Tests;
|
|
|
|
[TestFixture]
|
|
public sealed class PaymentSettingsValidatorTests
|
|
{
|
|
[Test]
|
|
public void Validate_DefaultSettings_IsValid()
|
|
{
|
|
PaymentValidationResult result = PaymentSettingsValidator.Validate(TestSettings.Create());
|
|
|
|
Assert.That(result.IsValid, Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void Validate_BothPaymentMethodsDisabled_IsRejected()
|
|
{
|
|
AppSettings settings = TestSettings.Create();
|
|
settings.Payments.CashEnabled = false;
|
|
settings.Payments.CardEnabled = false;
|
|
|
|
PaymentValidationResult result = PaymentSettingsValidator.Validate(settings);
|
|
|
|
Assert.That(result.Issues, Has.Some.Property("Field").EqualTo(PaymentValidationField.PaymentMethods));
|
|
}
|
|
|
|
[TestCase(14, 45, 120, 10, PaymentValidationField.SessionIdleTimeout)]
|
|
[TestCase(45, 14, 120, 10, PaymentValidationField.CashPaymentTimeout)]
|
|
[TestCase(45, 45, 29, 10, PaymentValidationField.CashlessPaymentTimeout)]
|
|
[TestCase(45, 45, 120, 61, PaymentValidationField.SuccessTimeout)]
|
|
public void Validate_TimeoutOutsideSafeRange_IsRejected(
|
|
int idle,
|
|
int cashPayment,
|
|
int cashlessPayment,
|
|
int success,
|
|
PaymentValidationField expectedField)
|
|
{
|
|
AppSettings settings = TestSettings.Create();
|
|
settings.Timeouts.SessionIdleSeconds = idle;
|
|
settings.Timeouts.CashPaymentSeconds = cashPayment;
|
|
settings.Timeouts.CashlessPaymentSeconds = cashlessPayment;
|
|
settings.Timeouts.SuccessSeconds = success;
|
|
|
|
PaymentValidationResult result = PaymentSettingsValidator.Validate(settings);
|
|
|
|
Assert.That(result.Issues, Has.Some.Property("Field").EqualTo(expectedField));
|
|
}
|
|
}
|