public void ArgumentNotNullOrEmpty_WhenArgumentNameIsNullOrEmpty_MustNotThrow()
{
Assert.DoesNotThrow(() => Ensure.ArgumentNotNullOrEmpty("string", null));
Assert.DoesNotThrow(() => Ensure.ArgumentNotNullOrEmpty("string", string.Empty));
var ex1 = Assert.Throws<ArgumentNullException>(() => Ensure.ArgumentNotNullOrEmpty(null, null));
ex1.ParamName.Should().BeNull();
var ex2 = Assert.Throws<ArgumentNullException>(() => Ensure.ArgumentNotNullOrEmpty(null, string.Empty));
ex2.ParamName.Should().Be(string.Empty);
var ex3 = Assert.Throws<ArgumentException>(() => Ensure.ArgumentNotNullOrEmpty(string.Empty, null));
ex3.ParamName.Should().BeNull();
var ex4 = Assert.Throws<ArgumentException>(() => Ensure.ArgumentNotNullOrEmpty(string.Empty, string.Empty));
ex4.ParamName.Should().Be(string.Empty);
}