public static void CreateFromRepositoryAndServiceFactory(
            IRecordedCallRepository repository,
            Func <IService> serviceFactory,
            SelfInitializingFake <IService> fake)
        {
            "Given a saved call repository"
            .x(() => repository = A.Fake <IRecordedCallRepository>());

            "And a service factory"
            .x(() => serviceFactory = A.Fake <Func <IService> >());

            "When I create a self-initializing fake"
            .x(() => fake = SelfInitializingFake <IService> .For(serviceFactory, repository));

            "Then the self-initializing fake is created"
            .x(() => fake.Should().NotBeNull());

            "And its Fake property is not null"
            .x(() => fake.Object.Should().NotBeNull());
        }