/// <summary>Initializes a new instance of the <see cref="MutationGuarder"/> class.</summary>
 /// <param name="fixer">Handles generic resolution.</param>
 /// <param name="randomizer">Creates objects and populates them with random values.</param>
 /// <param name="duplicator">Deep clones objects.</param>
 /// <param name="asserter">Handles common test scenarios.</param>
 /// <param name="timeout">How long to wait for methods to complete.</param>
 internal MutationGuarder(GenericFixer fixer, IRandomizer randomizer,
                          IDuplicator duplicator, Asserter asserter, TimeSpan timeout)
     : base(fixer, randomizer, timeout)
 {
     _duplicator = duplicator ?? throw new ArgumentNullException(nameof(duplicator));
     _asserter   = asserter ?? throw new ArgumentNullException(nameof(asserter));
 }
Example #2
0
        /// <inheritdoc/>
        public IDuplicatable DeepClone(IDuplicator duplicator)
        {
            if (duplicator == null)
            {
                throw new ArgumentNullException(nameof(duplicator));
            }

            return(new CallData(_methodName, _generics.ToArray(), duplicator.Copy(_args), duplicator.Copy(_valuer)));
        }
        /// <inheritdoc/>
        public IDuplicatable DeepClone(IDuplicator duplicator)
        {
            if (duplicator == null)
            {
                throw new ArgumentNullException(nameof(duplicator));
            }

            return(new MethodCallWrapper(duplicator.Copy(_method),
                                         duplicator.Copy(_names.Select(n => Tuple.Create(n, _args[n])).ToArray())));
        }
 /// <summary>Initializes a new instance of the <see cref="DuplicatorChainer"/> class.</summary>
 /// <param name="duplicator">Reference to the actual duplicator.</param>
 /// <param name="callback">Callback to the duplicator to handle child values.</param>
 public DuplicatorChainer(IDuplicator duplicator, Func <object, DuplicatorChainer, object> callback)
 {
     Duplicator = duplicator ?? throw new ArgumentNullException(nameof(duplicator));
     _callback  = callback ?? throw new ArgumentNullException(nameof(callback));
     _history   = new ConditionalWeakTable <object, object>();
 }