public void IsIgnoredReturnsFalseWhenNoMatchOnConstructorArguments() { var configuration = Substitute.For <IBuildConfiguration>(); var constructorResolver = Substitute.For <IConstructorResolver>(); var instance = new Optionals(Guid.NewGuid().ToString()) { Value = Guid.NewGuid().ToString() }; var propertyInfo = instance.GetType().GetProperty(nameof(Optionals.Value)) !; var args = new object?[] { Guid.NewGuid().ToString() }; var constructor = instance.GetType().GetConstructor(new[] { typeof(string) }); configuration.ConstructorResolver.Returns(constructorResolver); constructorResolver.Resolve(typeof(Optionals), args).Returns(constructor); var sut = new DefaultPropertyResolver(CacheLevel.PerInstance); var actual = sut.IsIgnored(configuration, instance, propertyInfo, args); actual.Should().BeFalse(); }
public void IsIgnoredThrowsExceptionWhenConstructorNotFound() { var configuration = Substitute.For <IBuildConfiguration>(); var instance = new Optionals(Guid.NewGuid().ToString()) { Value = Guid.NewGuid().ToString() }; var propertyInfo = instance.GetType().GetProperty(nameof(Optionals.Value)) !; var args = new object?[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }; var sut = new DefaultPropertyResolver(CacheLevel.PerInstance); Action action = () => sut.IsIgnored(configuration, instance, propertyInfo, args); action.Should().Throw <MissingMemberException>(); }