public async Task Should_throw_when_no_matching_executor()
        {
            var executors        = new Dictionary <Type, Func <IEsiFragment, EsiExecutionContext, Task <IEnumerable <string> > > >();
            var fragmentExecutor = new EsiFragmentExecutor(executors, new PipelineContainer().GetInstance);

            var fragment = new FakeFragment();
            // ReSharper disable once PossibleNullReferenceException
            var exception = await Record.ExceptionAsync(() => fragmentExecutor.Execute(fragment, EmptyExecutionContext()));

            exception.Should().Be.InstanceOf <NotSupportedException>();
        }
        public async Task Should_run_executor_for_fragment()
        {
            var executors = new Dictionary <Type, Func <IEsiFragment, EsiExecutionContext, Task <IEnumerable <string> > > >
            {
                [typeof(FakeFragment)] = (f, ec) => Task.FromResult <IEnumerable <string> >(new[] { "fake", "content" })
            };
            var fragmentExecutor = new EsiFragmentExecutor(executors, new PipelineContainer().GetInstance);

            var fragment = new FakeFragment();
            var result   = await fragmentExecutor.Execute(fragment, EmptyExecutionContext());

            result.Should().Have.SameSequenceAs("fake", "content");
        }