using Ardalis.GuardClauses;
using System;
using Xunit;
namespace UnitTests.GuardClauses
{
public class InvalidEmailGuard
{
[Fact]
public void ThrowsArgumentNullExceptionIfNullOrEmptyEmail()
{
string? email = null;
Assert.Throws<ArgumentNullException>(() => Guard.Against.InvalidEmail(email, nameof(email)));
}
[Fact]
public void ThrowsArgumentExceptionIfEmailDoesNotEndInCorrectSuffix()
{
var email = "eric@fleming.invalidsuffix";
Assert.Throws<ArgumentException>(() => Guard.Against.InvalidEmail(email, nameof(email)));
}
[Fact]
public void ReturnsEmailAddressGivenValidEmail()
{
var validEmailAddress = "eric@fleming.com";
var result = Guard.Against.InvalidEmail(validEmailAddress, nameof(validEmailAddress));
Assert.Equal(validEmailAddress, result);
}
}
}