public static R For <T, R>(this SpecificationFactories factories)
        where T : class//, IEntity
        where R : SpecificationFactory <T>
    {
        ISpecificationFactory?factory = factories.For(typeof(T));

        if (factory == null)
        {
            var autoFac = new SpecificationFactory <T>(); // Nothing to do with AutoFac DI :)
            factories.Add <T>(autoFac);
            return((R)autoFac);
        }
        return((R)factory);
    }
 public SpecificationClosureOfOperationsShould(DbInjectionFixture <TrainingDb> testFixture,
                                               SpecificationFactories specificationFactories)
 {
     this.testFixture            = testFixture;
     this.specificationFactories = specificationFactories;
 }
 public SpecificationWithRepoShould(DbInjectionFixture <TrainingDb> testFixture,
                                    SpecificationFactories specificationFactories)
 {
     this.testFixture            = testFixture;
     this.specificationFactories = specificationFactories;
 }
 public static SpecificationFactory <T> For <T>(this SpecificationFactories factories)
     where T : class//, IEntity
 => For <T, SpecificationFactory <T> >(factories);
 public static SpecificationFactories Add <T>(this SpecificationFactories factories, SpecificationFactory <T> factory)
     where T : class//, IEntity
 {
     factories.Register(typeof(T), factory);
     return(factories);
 }