示例#1
0
        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();
        }
示例#2
0
        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>();
        }