public void AnonymousWithReturnsCorrectResult() { // Arrange Expression <Func <PropertyHolder <object>, object> > expectedExpression = x => x.Property; var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer <PropertyHolder <object> >()).ToArray(); var initialComposers = (from c in expectedComposers select new DelegatingComposer <PropertyHolder <object> > { OnAnonymousWith = f => f == expectedExpression ? c : new DelegatingComposer <PropertyHolder <object> >() }).ToArray(); var sut = new CompositePostprocessComposer <PropertyHolder <object> >(initialComposers); // Act var result = sut.With(expectedExpression); // Assert var composite = Assert.IsAssignableFrom <CompositePostprocessComposer <PropertyHolder <object> > >(result); Assert.True(expectedComposers.SequenceEqual(composite.Composers)); }
public void AnonymousWithReturnsCorrectResult() { // Fixture setup Expression<Func<PropertyHolder<object>, object>> expectedExpression = x => x.Property; var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer<PropertyHolder<object>>()).ToArray(); var initialComposers = (from c in expectedComposers select new DelegatingComposer<PropertyHolder<object>> { OnAnonymousWith = f => f == expectedExpression ? c : new DelegatingComposer<PropertyHolder<object>>() }).ToArray(); var sut = new CompositePostprocessComposer<PropertyHolder<object>>(initialComposers); // Exercise system var result = sut.With(expectedExpression); // Verify outcome var composite = Assert.IsAssignableFrom<CompositePostprocessComposer<PropertyHolder<object>>>(result); Assert.True(expectedComposers.SequenceEqual(composite.Composers)); // Teardown }
public void WithValueReturnsCorrectResult() { // Arrange Expression <Func <PropertyHolder <object>, object> > expectedExpression = x => x.Property; var value = new object(); var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer <PropertyHolder <object> >()).ToArray(); var initialComposers = (from c in expectedComposers select new DelegatingComposer <PropertyHolder <object> > { OnWithOverloadValue = (e, v) => e == expectedExpression && v == value ? c : new DelegatingComposer <PropertyHolder <object> >() }).ToArray(); var sut = new CompositePostprocessComposer <PropertyHolder <object> >(initialComposers); // Act var result = sut.With(expectedExpression, value); // Assert var composite = Assert.IsAssignableFrom <CompositePostprocessComposer <PropertyHolder <object> > >(result); Assert.True(expectedComposers.SequenceEqual(composite.Composers)); }
public void WithSingleArgValueFactoryReturnsCorrectResult() { // Arrange Expression <Func <PropertyHolder <object>, object> > expectedExpression = x => x.Property; Func <object, object> valueFactory = _ => new object(); var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer <PropertyHolder <object> >()).ToArray(); var initialComposers = (from c in expectedComposers select new DelegatingComposer <PropertyHolder <object> > { OnWithOverloadFactory = (f, vf) => f == expectedExpression && object.Equals(vf, valueFactory) ? c : new DelegatingComposer <PropertyHolder <object> >() }).ToArray(); var sut = new CompositePostprocessComposer <PropertyHolder <object> >(initialComposers); // Act var result = sut.With(expectedExpression, valueFactory); // Assert var composite = Assert.IsAssignableFrom <CompositePostprocessComposer <PropertyHolder <object> > >(result); Assert.True(expectedComposers.SequenceEqual(composite.Composers)); }
public void WithReturnsCorrectResult() { // Fixture setup Expression <Func <PropertyHolder <object>, object> > expectedExpression = x => x.Property; var value = new object(); var expectedComposers = Enumerable.Range(1, 3).Select(i => new DelegatingComposer <PropertyHolder <object> >()).ToArray(); var initialComposers = (from c in expectedComposers select new DelegatingComposer <PropertyHolder <object> > { OnWith = (f, v) => f == expectedExpression && v == value ? c : new DelegatingComposer <PropertyHolder <object> >() }).ToArray(); var sut = new CompositePostprocessComposer <PropertyHolder <object> >(initialComposers); // Exercise system var result = sut.With(expectedExpression, value); // Verify outcome var composite = Assert.IsAssignableFrom <CompositePostprocessComposer <PropertyHolder <object> > >(result); Assert.True(expectedComposers.SequenceEqual(composite.Composers)); // Teardown }