public void Execute_ShouldProvideExecutableContextForExecutables(IExecutor<IExtension> testee)
{
this.SetupSyntaxReturnsExecutables();
var firstExecutableContext = Mock.Of<IExecutableContext>();
var secondExecutableContext = Mock.Of<IExecutableContext>();
this.executionContext.Setup(e => e.CreateExecutableContext(this.firstExecutable.Object))
.Returns(firstExecutableContext);
this.executionContext.Setup(e => e.CreateExecutableContext(this.secondExecutable.Object))
.Returns(secondExecutableContext);
testee.Execute(this.syntax.Object, this.extensions, this.executionContext.Object);
this.firstExecutable.Verify(e => e.Execute(It.IsAny<IEnumerable<IExtension>>(), firstExecutableContext));
this.secondExecutable.Verify(e => e.Execute(It.IsAny<IEnumerable<IExtension>>(), secondExecutableContext));
}