diff --git a/src/LightInject.Tests/LazyTests.cs b/src/LightInject.Tests/LazyTests.cs index d69aab18..6c65728d 100644 --- a/src/LightInject.Tests/LazyTests.cs +++ b/src/LightInject.Tests/LazyTests.cs @@ -38,19 +38,21 @@ public void GetInstance_LazyService_CreatesTargetWhenValuePropertyIsAccessed() Assert.IsAssignableFrom(instance.Value); } - [Fact] - public void CanGetInstance_LazyForKnownService_ReturnsTrue() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_LazyForKnownService_ReturnsTrue(string serviceName) { var container = CreateContainer(); container.Register(); - Assert.True(container.CanGetInstance(typeof(Lazy), string.Empty)); + Assert.True(container.CanGetInstance(typeof(Lazy), serviceName)); } - [Fact] - public void CanGetInstance_LazyForUnknownService_ReturnsFalse() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_LazyForUnknownService_ReturnsFalse(string serviceName) { var container = CreateContainer(); - Assert.False(container.CanGetInstance(typeof(Lazy), string.Empty)); + Assert.False(container.CanGetInstance(typeof(Lazy), serviceName)); } [Fact] diff --git a/src/LightInject.Tests/ServiceContainerTests.cs b/src/LightInject.Tests/ServiceContainerTests.cs index 2aaedac3..55d761b5 100644 --- a/src/LightInject.Tests/ServiceContainerTests.cs +++ b/src/LightInject.Tests/ServiceContainerTests.cs @@ -1127,59 +1127,67 @@ public void GetInstance_UsingFallbackForDependency_ReturnsSingleInstance() } - [Fact] - public void CanGetInstance_KnownService_ReturnsTrue() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_KnownService_ReturnsTrue(string serviceName) { var container = CreateContainer(); container.Register(); - var canCreateInstance = container.CanGetInstance(typeof(IFoo), string.Empty); + var canCreateInstance = container.CanGetInstance(typeof(IFoo), serviceName); Assert.True(canCreateInstance); } - [Fact] - public void CanGetInstance_UnknownService_ReturnFalse() + + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_UnknownService_ReturnFalse(string serviceName) { var container = CreateContainer(); container.Register(); - var canCreateInstance = container.CanGetInstance(typeof(IBar), string.Empty); + var canCreateInstance = container.CanGetInstance(typeof(IBar), serviceName); Assert.False(canCreateInstance); } - [Fact] - public void CanGetInstance_FuncForKnownService_ReturnsTrue() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_FuncForKnownService_ReturnsTrue(string serviceName) { var container = CreateContainer(); container.Register(); - Assert.True(container.CanGetInstance(typeof(Func), string.Empty)); + Assert.True(container.CanGetInstance(typeof(Func), serviceName)); } - [Fact] - public void CanGetInstance_FuncForUnknownService_ReturnsFalse() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_FuncForUnknownService_ReturnsFalse(string serviceName) { var container = CreateContainer(); - Assert.False(container.CanGetInstance(typeof(Func), string.Empty)); + Assert.False(container.CanGetInstance(typeof(Func), serviceName)); } - [Fact] - public void CanGetInstance_ExplicitlyRegisteredFunc_ReturnsTrue() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_ExplicitlyRegisteredFunc_ReturnsTrue(string serviceName) { var container = CreateContainer(); container.Register>(f => (() => new Foo())); - Assert.True(container.CanGetInstance(typeof(Func), string.Empty)); + Assert.True(container.CanGetInstance(typeof(Func), serviceName)); } - [Fact] - public void CanGetInstance_ParameterizedFuncForKnownService_ReturnsTrue() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_ParameterizedFuncForKnownService_ReturnsTrue(string serviceName) { var container = CreateContainer(); container.Register((factory, i) => new FooWithOneParameter(i)); - Assert.True(container.CanGetInstance(typeof(Func), string.Empty)); + Assert.True(container.CanGetInstance(typeof(Func), serviceName)); } - [Fact] - public void CanGetInstance_ParameterizedFuncForUnknownService_ReturnsFalse() + [Theory] + [MemberData(nameof(StringDataGenerator.NullOrWhiteSpaceData), MemberType = typeof(StringDataGenerator))] + public void CanGetInstance_ParameterizedFuncForUnknownService_ReturnsFalse(string serviceName) { var container = CreateContainer(); - Assert.False(container.CanGetInstance(typeof(Func), string.Empty)); + Assert.False(container.CanGetInstance(typeof(Func), serviceName)); } [Fact] diff --git a/src/LightInject.Tests/StringDataGenerator.cs b/src/LightInject.Tests/StringDataGenerator.cs new file mode 100644 index 00000000..51475951 --- /dev/null +++ b/src/LightInject.Tests/StringDataGenerator.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace LightInject.Tests; + +public static class StringDataGenerator +{ + public static IEnumerable NullOrWhiteSpaceData() + { + yield return new object[] { null }; + yield return new object[] { string.Empty }; + yield return new object[] { " " }; + yield return new object[] { "\t" }; + yield return new object[] { "\n" }; + yield return new object[] { "\r" }; + } +} \ No newline at end of file