public void CreateForTypeThrowsException() { var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule(item => true, () => value, priority); Action action = () => sut.Create(null !, typeof(string)); action.Should().Throw <NotSupportedException>(); }
public void IsMatchForTypeReturnsFalse() { var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule(item => true, () => value, priority); var actual = sut.IsMatch(typeof(string)); actual.Should().BeFalse(); }
public void IsMatchForPropertyThrowsExceptionWithNullProperty() { var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule(type => true, () => value, priority); Action action = () => sut.IsMatch((PropertyInfo)null !); action.Should().Throw <ArgumentNullException>(); }
public void IsMatchForPropertyReturnsPredicateResult(bool isMatch) { var propertyInfo = typeof(Person).GetProperty(nameof(Person.FirstName)) !; var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule(item => isMatch, () => value, priority); var actual = sut.IsMatch(propertyInfo); actual.Should().Be(isMatch); }
public void CreateForPropertyReturnsLiteralValue() { var propertyInfo = typeof(Person).GetProperty(nameof(Person.FirstName)) !; var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule(item => true, value, priority); var actual = sut.Create(null !, propertyInfo); actual.Should().Be(value); }
public void IsMatchForParameterReturnsFalse() { var parameterInfo = typeof(Person).GetConstructors() .First(x => x.GetParameters().FirstOrDefault()?.Name == "firstName").GetParameters().First(); var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule((item) => true, () => value, priority); var actual = sut.IsMatch(parameterInfo); actual.Should().BeFalse(); }
public void CreateForParameterThrowsException() { var parameterInfo = typeof(Person).GetConstructors() .First(x => x.GetParameters().FirstOrDefault()?.Name == "firstName").GetParameters().First(); var value = Guid.NewGuid().ToString(); var priority = Environment.TickCount; var sut = new PropertyPredicateCreationRule(item => true, () => value, priority); Action action = () => sut.Create(null !, parameterInfo); action.Should().Throw <NotSupportedException>(); }
/// <summary> /// Adds a new <see cref="PropertyPredicateCreationRule" /> to the configuration. /// </summary> /// <param name="configuration">The configuration.</param> /// <param name="predicate">The predicate that matches on a property.</param> /// <param name="value">The static value returned by the rule.</param> /// <param name="priority">The priority of the rule.</param> /// <returns>The configuration.</returns> /// <exception cref="ArgumentNullException">The <paramref name="configuration" /> parameter is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">The <paramref name="predicate" /> parameter is <c>null</c>.</exception> public static IBuildConfiguration AddCreationRule(this IBuildConfiguration configuration, Predicate <PropertyInfo> predicate, object value, int priority) { configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); predicate = predicate ?? throw new ArgumentNullException(nameof(predicate)); var rule = new PropertyPredicateCreationRule(predicate, value, priority); configuration.CreationRules.Add(rule); return(configuration); }