public void GetBuildCapabilityForTypeReturnsCapabilityWhenMatchingRuleFound() { var type = typeof(Person); var buildConfiguration = new BuildConfiguration(); var buildChain = new BuildHistory(); var expected = new Person(); var executeStrategy = Substitute.For <IExecuteStrategy>(); var rule = Substitute.For <ICreationRule>(); buildConfiguration.CreationRules.Add(rule); executeStrategy.Configuration.Returns(buildConfiguration); executeStrategy.Log.Returns(_buildLog); rule.IsMatch(type).Returns(true); rule.Create(executeStrategy, type).Returns(expected); var sut = new CreationRuleBuildAction(); var actual = sut.GetBuildCapability(buildConfiguration, buildChain, type); actual.Should().NotBeNull(); actual !.SupportsCreate.Should().BeTrue(); actual.SupportsPopulate.Should().BeFalse(); actual.AutoPopulate.Should().BeFalse(); actual.ImplementedByType.Should().Be(rule.GetType()); }
public void GetBuildCapabilityForParameterInfoReturnsCapabilityWhenMatchingRuleFound() { var parameterInfo = typeof(Person).GetConstructors() .First(x => x.GetParameters().FirstOrDefault()?.Name == "firstName").GetParameters().First(); var buildConfiguration = new BuildConfiguration(); var buildChain = new BuildHistory(); var expected = new Person(); var executeStrategy = Substitute.For <IExecuteStrategy>(); var rule = Substitute.For <ICreationRule>(); buildConfiguration.CreationRules.Add(rule); executeStrategy.Configuration.Returns(buildConfiguration); executeStrategy.Log.Returns(_buildLog); rule.IsMatch(parameterInfo).Returns(true); rule.Create(executeStrategy, parameterInfo).Returns(expected); var sut = new CreationRuleBuildAction(); var actual = sut.GetBuildCapability(buildConfiguration, buildChain, parameterInfo) !; actual.Should().NotBeNull(); actual.SupportsCreate.Should().BeTrue(); actual.SupportsPopulate.Should().BeFalse(); actual.AutoPopulate.Should().BeFalse(); actual.ImplementedByType.Should().Be(rule.GetType()); }
public void GetBuildCapabilityForTypeThrowsExceptionWithNullType() { var buildConfiguration = new BuildConfiguration(); var buildChain = new BuildHistory(); var sut = new CreationRuleBuildAction(); Action action = () => sut.GetBuildCapability(buildConfiguration, buildChain, (Type)null !); action.Should().Throw <ArgumentNullException>(); }
public void GetBuildCapabilityForTypeThrowsExceptionWithNullBuildChain() { var type = typeof(Person); var buildConfiguration = new BuildConfiguration(); var sut = new CreationRuleBuildAction(); Action action = () => sut.GetBuildCapability(buildConfiguration, null !, type); action.Should().Throw <ArgumentNullException>(); }
public void GetBuildCapabilityForPropertyInfoThrowsExceptionWithNullBuildChain() { var propertyInfo = typeof(Person).GetProperty(nameof(Person.FirstName)) !; var buildConfiguration = new BuildConfiguration(); var sut = new CreationRuleBuildAction(); Action action = () => sut.GetBuildCapability(buildConfiguration, null !, propertyInfo); action.Should().Throw <ArgumentNullException>(); }
public void GetBuildCapabilityForParameterInfoThrowsExceptionWithNullBuildChain() { var parameterInfo = typeof(Person).GetConstructors() .First(x => x.GetParameters().FirstOrDefault()?.Name == "firstName").GetParameters().First(); var buildConfiguration = new BuildConfiguration(); var sut = new CreationRuleBuildAction(); Action action = () => sut.GetBuildCapability(buildConfiguration, null !, parameterInfo); action.Should().Throw <ArgumentNullException>(); }
public void GetBuildCapabilityForTypeReturnsNullWhenNoRulesExist() { var type = typeof(Person); var buildConfiguration = new BuildConfiguration(); var buildChain = new BuildHistory(); var executeStrategy = Substitute.For <IExecuteStrategy>(); executeStrategy.Configuration.Returns(buildConfiguration); executeStrategy.Log.Returns(_buildLog); var sut = new CreationRuleBuildAction(); var actual = sut.GetBuildCapability(buildConfiguration, buildChain, type); actual.Should().BeNull(); }
public void GetBuildCapabilityForParameterInfoReturnsNullWhenNoRulesExist() { var parameterInfo = typeof(Person).GetConstructors() .First(x => x.GetParameters().FirstOrDefault()?.Name == "firstName").GetParameters().First(); var buildConfiguration = new BuildConfiguration(); var buildChain = new BuildHistory(); var executeStrategy = Substitute.For <IExecuteStrategy>(); executeStrategy.Configuration.Returns(buildConfiguration); executeStrategy.Log.Returns(_buildLog); var sut = new CreationRuleBuildAction(); var actual = sut.GetBuildCapability(buildConfiguration, buildChain, parameterInfo); actual.Should().BeNull(); }
public void GetBuildCapabilityForPropertyInfoReturnsNullWhenNoMatchingRuleFound() { var propertyInfo = typeof(Person).GetProperty(nameof(Person.FirstName)) !; var buildConfiguration = new BuildConfiguration(); var buildChain = new BuildHistory(); var executeStrategy = Substitute.For <IExecuteStrategy>(); var rule = Substitute.For <ICreationRule>(); buildConfiguration.CreationRules.Add(rule); executeStrategy.Configuration.Returns(buildConfiguration); executeStrategy.Log.Returns(_buildLog); var sut = new CreationRuleBuildAction(); var actual = sut.GetBuildCapability(buildConfiguration, buildChain, propertyInfo); actual.Should().BeNull(); }