public FakeConcreteClass( FallbackTypeGenerator <T> fallbackTypeGenerator, IValueGenerator valueGenerator) { _fallbackTypeGenerator = fallbackTypeGenerator; _valueGenerator = valueGenerator; }
public ResolutionsFactory( ISpecialCasesOfResolutions specialCasesOfResolutions, FallbackTypeGenerator fallbackTypeGenerator) { _specialCasesOfResolutions = specialCasesOfResolutions; _fallbackTypeGenerator = fallbackTypeGenerator; }
private static void AssertNullCheckForEveryPossibleArgumentOf(IConstraintsViolations violations, IConstructorWrapper constructor, FallbackTypeGenerator fallbackTypeGenerator) { for (int i = 0; i < constructor.GetParametersCount(); ++i) { var parameters = constructor.GenerateAnyParameterValues(Any.Instance); if (SmartType.ForTypeOf(parameters[i]).CanBeAssignedNullValue()) { parameters[i] = null; try { fallbackTypeGenerator.GenerateInstance(parameters); violations.Add("Not guarded against nulls: " + constructor + ", Not guarded parameter: " + constructor.GetDescriptionForParameter(i)); } catch (TargetInvocationException exception) { if (exception.InnerException.GetType() == typeof(ArgumentNullException)) { //do nothing, this is the expected case } else { throw; } } } } }
public FakeAbstractClass( CachedReturnValueGeneration generation, ProxyGenerator proxyGenerator) { _generation = generation; _proxyGenerator = proxyGenerator; _fallbackTypeGenerator = new FallbackTypeGenerator <T>(); //bug extract? }
public FakeAbstractClass( CachedReturnValueGeneration generation, ProxyGenerator proxyGenerator, FallbackTypeGenerator <T> fallbackTypeGenerator) { _generation = generation; _proxyGenerator = proxyGenerator; _fallbackTypeGenerator = fallbackTypeGenerator; }
public void CheckAndRecord(ConstraintsViolations violations) { var constructors = SmartType.For(_type).GetAllPublicConstructors(); var fallbackTypeGenerator = new FallbackTypeGenerator(_type); foreach (var constructor in constructors) { AssertNullCheckForEveryPossibleArgumentOf(violations, constructor, fallbackTypeGenerator); } }
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 GenericFakeChainFactory(ISpecialCasesOfResolutions <T> specialCasesOfResolutions, FallbackTypeGenerator <T> fallbackTypeGenerator) { _specialCasesOfResolutions = specialCasesOfResolutions; _fallbackTypeGenerator = fallbackTypeGenerator; }
public FakeConcreteClass(FallbackTypeGenerator fallbackTypeGenerator) { _fallbackTypeGenerator = fallbackTypeGenerator; }
public FakeConcreteClassWithNonConcreteConstructor(FallbackTypeGenerator <T> fallbackTypeGenerator) { _fallbackTypeGenerator = fallbackTypeGenerator; }