public static void TargetWithMultipleConstraints() { var expectationA = new StringBuilder(); var expectationB = new Base(); var expectationC = new InheritingFromBase(); var expectationD = Guid.NewGuid(); var expectationE = new InheritingFromBase(); var argumentA = default(StringBuilder); var argumentB = default(Base); var argumentC = default(InheritingFromBase); var argumentD = default(Guid); var argumentE = default(InheritingFromBase); var rock = Rock.Create <IGenerics>(); rock.Handle <StringBuilder, Base, InheritingFromBase, Guid, InheritingFromBase>( _ => _.TargetWithMultipleConstraints(expectationA, expectationB, expectationC, expectationD, expectationE), (a, b, c, d, e) => { argumentA = a; argumentB = b; argumentC = c; argumentD = d; argumentE = e; }); var chunk = rock.Make(); chunk.TargetWithMultipleConstraints <StringBuilder, Base, InheritingFromBase, Guid, InheritingFromBase>( expectationA, expectationB, expectationC, expectationD, expectationE); Assert.That(argumentA, Is.Not.Null, nameof(argumentA)); Assert.That(argumentB, Is.Not.Null, nameof(argumentB)); Assert.That(argumentC, Is.Not.Null, nameof(argumentC)); Assert.That(argumentD, Is.Not.EqualTo(Guid.Empty), nameof(argumentD)); Assert.That(argumentE, Is.Not.Null, nameof(argumentE)); rock.Verify(); }
public void TargetWithMultipleConstraints() { var expectationA = new StringBuilder(); var expectationB = new Base(); var expectationC = new InheritingFromBase(); var expectationD = Guid.NewGuid(); var expectationE = new InheritingFromBase(); var argumentA = default(StringBuilder); var argumentB = default(Base); var argumentC = default(InheritingFromBase); var argumentD = default(Guid); var argumentE = default(InheritingFromBase); var rock = Rock.Create<IGenerics>(); rock.Handle<StringBuilder, Base, InheritingFromBase, Guid, InheritingFromBase>( _ => _.TargetWithMultipleConstraints(expectationA, expectationB, expectationC, expectationD, expectationE), (a, b, c, d, e) => { argumentA = a; argumentB = b; argumentC = c; argumentD = d; argumentE = e; }); var chunk = rock.Make(); chunk.TargetWithMultipleConstraints<StringBuilder, Base, InheritingFromBase, Guid, InheritingFromBase>( expectationA, expectationB, expectationC, expectationD, expectationE); Assert.IsNotNull(argumentA, nameof(argumentB)); Assert.IsNotNull(argumentB, nameof(argumentB)); Assert.IsNotNull(argumentC, nameof(argumentC)); Assert.AreNotEqual(Guid.Empty, argumentD, nameof(argumentD)); Assert.IsNotNull(argumentE, nameof(argumentE)); rock.Verify(); }