public static AllGenerator Create()
        {
            var methodProxyCalls = new GenericMethodProxyCalls();
            var valueGenerator   = CreateValueGenerator();
            var proxyGenerator   = new ProxyGenerator();
            var fakeChainFactory = CreateFakeChainFactory(proxyGenerator, valueGenerator);

            var allGenerator = new AllGenerator(valueGenerator, fakeChainFactory, methodProxyCalls);

            return(allGenerator);
        }
Exemple #2
0
        public static AllGenerator Create()
        {
            var emptyCollectionFixture = new Fixture
            {
                RepeatCount = 0
            };
            var methodProxyCalls     = new GenericMethodProxyCalls();
            var fixtureConfiguration = new AutoFixtureConfiguration();
            var fixture                     = fixtureConfiguration.CreateUnconfiguredInstance();
            var collectionGenerator         = new CollectionGenerator(methodProxyCalls);
            var valueGenerator              = new ValueGenerator(fixture);
            var charGenerator               = new CharGenerator(valueGenerator);
            var specificTypeObjectGenerator = new SpecificTypeObjectGenerator(valueGenerator);
            var emptyCollectionGenerator    = new EmptyCollectionGenerator(
                emptyCollectionFixture,
                methodProxyCalls);
            var proxyGenerator      = new ProxyGenerator();
            var proxyBasedGenerator = new ProxyBasedGenerator(
                emptyCollectionFixture,
                methodProxyCalls,
                emptyCollectionGenerator, //TODO make separate chain for this
                proxyGenerator,
                new FakeChainFactory(
                    new CachedReturnValueGeneration(new PerMethodCache <object>()),
                    GlobalNestingLimit.Of(5),
                    proxyGenerator, //TODO get rid of this dependency - its runtime-circular
                    valueGenerator,
                    collectionGenerator));
            var stringGenerator = new StringGenerator(
                charGenerator,
                valueGenerator,
                specificTypeObjectGenerator);
            var numericGenerator = new NumericGenerator(
                valueGenerator);
            var allGenerator = new AllGenerator(valueGenerator,
                                                charGenerator,
                                                specificTypeObjectGenerator,
                                                stringGenerator,
                                                emptyCollectionGenerator,
                                                numericGenerator,
                                                proxyBasedGenerator,
                                                collectionGenerator,
                                                new InvokableGenerator());

            fixtureConfiguration.ApplyTo(fixture, stringGenerator, numericGenerator);
            return(allGenerator);
        }
    public static BasicGenerator Create()
    {
        var valueGenerator = CreateValueGenerator();
        var proxyGenerator = new ProxyGenerator();
        var cachedReturnValueGeneration = new CachedReturnValueGeneration(new PerMethodCache <object>());
        var specialCasesOfResolutions   = new SpecialCasesOfResolutions();
        var fallbackTypeGenerator       = new FallbackTypeGenerator(
            new IFallbackGeneratedObjectCustomization[]
        {
            new FillPropertiesCustomization(),
            new FillFieldsCustomization()
        });
        var resolutionsFactory = new ResolutionsFactory(
            specialCasesOfResolutions, fallbackTypeGenerator);
        var unconstrainedChain = new TemporaryChainForCollection(new[]
        {
            ResolutionsFactory.ResolveTheMostSpecificCases(valueGenerator),
            resolutionsFactory.ResolveAsArray(),
            resolutionsFactory.ResolveAsImmutableArray(),
            resolutionsFactory.ResolveAsSimpleEnumerableAndList(),
            resolutionsFactory.ResolveAsImmutableList(),
            resolutionsFactory.ResolveAsSimpleSet(),
            resolutionsFactory.ResolveAsImmutableHashSet(),
            resolutionsFactory.ResolveAsImmutableSortedSet(),
            resolutionsFactory.ResolveAsSimpleDictionary(),
            resolutionsFactory.ResolveAsImmutableDictionary(),
            resolutionsFactory.ResolveAsImmutableSortedDictionary(),
            resolutionsFactory.ResolveAsSortedList(),
            resolutionsFactory.ResolveAsImmutableQueue(),
            resolutionsFactory.ResolveAsImmutableStack(),
            ResolutionsFactory.ResolveAsDelegate(),
            resolutionsFactory.ResolveAsSortedSet(),
            resolutionsFactory.ResolveAsSortedDictionary(),
            resolutionsFactory.ResolveAsConcurrentDictionary(),
            resolutionsFactory.ResolveAsConcurrentBag(),
            resolutionsFactory.ResolveAsConcurrentQueue(),
            resolutionsFactory.ResolveAsConcurrentStack(),
            resolutionsFactory.ResolveAsKeyValuePair(),
            ResolutionsFactory.ResolveAsOptionalOption(),
            resolutionsFactory.ResolveAsGenericEnumerator(),
            ResolutionsFactory.ResolveAsObjectEnumerator(),
            ResolutionsFactory.ResolveAsCollectionWithHeuristics(),
            ResolutionsFactory.ResolveAsInterfaceImplementationWhere(
                cachedReturnValueGeneration,
                proxyGenerator),
            resolutionsFactory.ResolveAsAbstractClassImplementationWhere(
                cachedReturnValueGeneration,
                proxyGenerator),
            resolutionsFactory.ResolveAsConcreteTypeWithNonConcreteTypesInConstructorSignature(),
            ResolutionsFactory.ResolveAsVoidTask(),
            ResolutionsFactory.ResolveAsTypedTask(),
            resolutionsFactory.ResolveAsConcreteClass()
        });
        var limitedGenerationChain         = new LimitedGenerationChain(unconstrainedChain);
        var fakeOrdinaryInterfaceGenerator = new FakeOrdinaryInterface(cachedReturnValueGeneration, proxyGenerator);

        var allGenerator = new AllGenerator(
            valueGenerator,
            limitedGenerationChain,
            unconstrainedChain,
            fakeOrdinaryInterfaceGenerator);

        return(allGenerator);
    }
 public SynchronizedBasicGenerator(AllGenerator allGenerator, object syncRoot)
 {
     _allGenerator = allGenerator;
     _syncRoot     = syncRoot;
 }
Exemple #5
0
 public SynchronizedInstanceGenerator(AllGenerator allGenerator, object syncRoot)
 {
     _allGenerator = allGenerator;
     _syncRoot     = syncRoot;
 }