56 lines
2.2 KiB
C#
56 lines
2.2 KiB
C#
using System;
|
|
using Xunit;
|
|
using Landmark.OLA.Models.Addresses;
|
|
using Landmark.OLA.Models.Addresses.Enums;
|
|
using Landmark.OLA.Models.Addresses.Validators;
|
|
|
|
namespace Landmark.OLA.Tests.Addresses.Validators
|
|
{
|
|
public class AddressValidatorTest
|
|
{
|
|
[Fact]
|
|
public void TestWithNull()
|
|
{
|
|
Address address = null;
|
|
Assert.Throws<InvalidOperationException>(() => new AddressValidator().Validate(address).IsValid);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(false, null, null, null, null, null, null, null)]
|
|
[InlineData(true, "address1", "address2", "city", "postalCode", "ext", "WI", "UnitedStates")]
|
|
[InlineData(true, "address1", null, "city", "postalCode", null, "WI", null)]
|
|
[InlineData(false, null, null, "city", "postalCode", null, "WI", null)]
|
|
[InlineData(false, "address1", null, null, "postalCode", null, "WI", null)]
|
|
[InlineData(false, "address1", null, "city", null, null, "WI", null)]
|
|
[InlineData(false, "address1", null, "city", "postalCode", null, null, null)]
|
|
[InlineData(false, "address1", null, "city", null, null, null, null)]
|
|
public void TestCombinationsWithValidStateAndCountry(bool expected, string address1, string address2, string city, string postalCode, string postalCodeExt, string state, string country)
|
|
{
|
|
StateOption? stateOptionToUse = null;
|
|
if(!string.IsNullOrEmpty(state)) {
|
|
Enum.TryParse(state, out StateOption stateOption);
|
|
stateOptionToUse = stateOption;
|
|
}
|
|
|
|
CountryOption? countryOptionToUse = null;
|
|
if (!string.IsNullOrEmpty(country))
|
|
{
|
|
Enum.TryParse(state, out CountryOption countryOption);
|
|
countryOptionToUse = countryOption;
|
|
}
|
|
|
|
Address address = new() {
|
|
Address1 = address1,
|
|
Address2 = address2,
|
|
City = city,
|
|
State = stateOptionToUse,
|
|
PostalCode = postalCode,
|
|
Country = countryOptionToUse,
|
|
PostalCodeExt = postalCodeExt
|
|
};
|
|
|
|
Assert.Equal(expected, new AddressValidator().Validate(address).IsValid);
|
|
}
|
|
}
|
|
}
|