コード例 #1
0
 public DefaultGenerationRequest(
     NestingLimit nestingLimit,
     GenerationCustomization[] generationCustomizations)
 {
     NestingLimit             = nestingLimit;
     GenerationCustomizations = generationCustomizations;
     Trace = new ListBasedGeneratonTrace();
 }
コード例 #2
0
        private readonly ConcurrentDictionary <Type, object> _unconstrainedFactoryCache = new ConcurrentDictionary <Type, object>(); //new MemoryCache("constrained");

        public FakeChainFactory(
            CachedReturnValueGeneration cachedReturnValueGeneration,
            NestingLimit nestingLimit,
            ProxyGenerator proxyGenerator,
            ValueGenerator valueGenerator)
        {
            _cachedReturnValueGeneration = cachedReturnValueGeneration;
            _nestingLimit   = nestingLimit;
            _proxyGenerator = proxyGenerator;
            _valueGenerator = valueGenerator;
        }
コード例 #3
0
 public IFakeChain <T> NewInstance(
     CachedReturnValueGeneration eachMethodReturnsTheSameValueOnEveryCall,
     NestingLimit nestingLimit,
     ProxyGenerator generationIsDoneUsingProxies,
     IValueGenerator valueGenerator)
 {
     return(LimitedTo(nestingLimit, UnconstrainedInstance(
                          eachMethodReturnsTheSameValueOnEveryCall,
                          generationIsDoneUsingProxies,
                          valueGenerator)));
 }
コード例 #4
0
 public T WithNextNestingLevel <T>(Func <T> limitNotReachedFunction,
                                   Func <T> limitReachedFunction)
 {
     try
     {
         NestingLimit.AddNestingFor <T>(Trace);
         if (!NestingLimit.IsReachedFor <T>())
         {
             return(limitNotReachedFunction.Invoke());
         }
         else
         {
             return(limitReachedFunction.Invoke());
         }
     }
     finally
     {
         NestingLimit.RemoveNestingFor <T>(Trace);
     }
 }
コード例 #5
0
 public LimitedFakeChain(NestingLimit perTypeNestingLimit, IFakeChain <T> fakeChain)
 {
     _perTypeNestingLimit = perTypeNestingLimit;
     _fakeChain           = fakeChain;
 }
コード例 #6
0
 private static IFakeChain <T> LimitedTo(NestingLimit limit, IFakeChain <T> fakeChain)
 {
     return(new LimitedFakeChain <T>(limit, fakeChain));
 }
コード例 #7
0
ファイル: LimitedFakeChain.cs プロジェクト: tchrikch/any
 public LimitedFakeChain(NestingLimit nestingLimit, IFakeChain <T> fakeChain)
 {
     _nestingLimit = nestingLimit;
     _fakeChain    = fakeChain;
 }