Ejemplo n.º 1
0
 /// <summary>
 /// Adds a call rule last in the list of user rules, meaning it has the lowest priority possible.
 /// </summary>
 /// <param name="rule">The rule to add.</param>
 public virtual void AddRuleLast(IFakeObjectCallRule rule)
 {
     lock (this.allUserRules)
     {
         this.allUserRules.AddLast(CallRuleMetadata.NeverCalled(rule));
     }
 }
 public void OnAfterCallIntercepted(ICompletedFakeObjectCall call, IFakeObjectCallRule ruleThatWasApplied)
 {
     if (call.Method.Name.Equals("TrapConstraints"))
     {
         call.GetArgument <Action>(0).Invoke();
     }
 }
Ejemplo n.º 3
0
        public void AddScopeRuleFirst(IFakeObjectCallRule rule)
        {
            Guard.AgainstNull(rule, "rule");

            var newRule = new CallRuleMetadata { Rule = rule };
            preManagerRulesField.AddFirst(newRule);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Adds a call rule to the fake object.
        /// </summary>
        /// <param name="rule">The rule to add.</param>
        public virtual void AddRule(IFakeObjectCallRule rule)
        {
            var newRule = new CallRuleMetadata {
                Rule = rule
            };

            FakeScope.Current.AddRule(this, newRule);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Removes the specified rule for the fake object.
        /// </summary>
        /// <param name="rule">The rule to remove.</param>
        public virtual void RemoveRule(IFakeObjectCallRule rule)
        {
            Guard.AgainstNull(rule, nameof(rule));

            var ruleToRemove = this.AllUserRules.FirstOrDefault(x => x.Rule.Equals(rule));

            this.AllUserRules.Remove(ruleToRemove);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Removes the specified rule for the fake object.
        /// </summary>
        /// <param name="rule">The rule to remove.</param>
        public virtual void RemoveRule(IFakeObjectCallRule rule)
        {
            Guard.IsNotNull(rule, "rule");

            var ruleToRemove = this.AllUserRules.Where(x => x.Rule.Equals(rule)).FirstOrDefault();

            this.AllUserRules.Remove(ruleToRemove);
        }
Ejemplo n.º 7
0
 public override void Setup(IFoo fake)
 {
     // Make sure we have enough rules to remove. Also that we know a rule that can
     // be removed.
     A.CallTo(() => fake.IntProperty).Returns(1);
     A.CallTo(() => fake.IntProperty).Returns(1);
     this.ruleToRemove = Fake.GetFakeManager(fake).Rules.Last();
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Adds a call rule last in the list of user rules, meaning it has the lowest priority possible.
        /// </summary>
        /// <param name="rule">The rule to add.</param>
        public virtual void AddRuleLast(IFakeObjectCallRule rule)
        {
            Guard.AgainstNull(rule, nameof(rule));

            lock (this.allUserRules)
            {
                this.allUserRules.AddLast(CallRuleMetadata.NeverCalled(rule));
            }
        }
            public void OnAfterCallIntercepted(ICompletedFakeObjectCall call, IFakeObjectCallRule ruleThatWasApplied)
            {
                Guard.AgainstNull(call, nameof(call));

                if (call.Method.Name.Equals("TrapConstraints"))
                {
                    this.realTrap.TrapConstraints(call.GetArgument <Action>(0));
                }
            }
Ejemplo n.º 10
0
        /// <summary>
        /// Adds a call rule to the fake object.
        /// </summary>
        /// <param name="rule">The rule to add.</param>
        public void AddRule(IFakeObjectCallRule rule)
        {
            var newRule = new CallRuleMetadata {
                Rule = rule
            };

            this.userRules.AddFirst(newRule);
            FakeScope.Current.AddRule(newRule);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Adds a call rule last in the list of user rules, meaning it has the lowest priority possible.
 /// </summary>
 /// <param name="rule">The rule to add.</param>
 public virtual void AddRuleLast(IFakeObjectCallRule rule)
 {
     lock (this.allUserRules)
     {
         this.allUserRules.AddLast(new CallRuleMetadata {
             Rule = rule
         });
     }
 }
Ejemplo n.º 12
0
        /// <summary>
        /// Adds a call rule to the fake object after the specified rule.
        /// </summary>
        /// <param name="previousRule">The rule after which to add a rule.</param>
        /// <param name="newRule">The rule to add.</param>
        internal void AddRuleAfter(IFakeObjectCallRule previousRule, IFakeObjectCallRule newRule)
        {
            lock (this.allUserRules)
            {
                var previousNode = this.allUserRules.Nodes().FirstOrDefault(n => n.Value.Rule == previousRule);
                if (previousNode is null)
                {
                    throw new InvalidOperationException(ExceptionMessages.CannotFindPreviousRule);
                }

                this.allUserRules.AddAfter(previousNode, CallRuleMetadata.NeverCalled(newRule));
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Removes the specified rule for the fake object.
        /// </summary>
        /// <param name="rule">The rule to remove.</param>
        public virtual void RemoveRule(IFakeObjectCallRule rule)
        {
            Guard.AgainstNull(rule, nameof(rule));

            lock (this.allUserRules)
            {
                var ruleToRemove = this.allUserRules.FirstOrDefault(x => x.Rule.Equals(rule));
                if (ruleToRemove is not null)
                {
                    this.allUserRules.Remove(ruleToRemove);
                }
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Adds a call rule to the fake object after the specified rule.
        /// </summary>
        /// <param name="previousRule">The rule after which to add a rule.</param>
        /// <param name="newRule">The rule to add.</param>
        internal void AddRuleAfter(IFakeObjectCallRule previousRule, IFakeObjectCallRule newRule)
        {
            var previousNode = this.AllUserRules.Nodes().FirstOrDefault(n => n.Value.Rule == previousRule);

            if (previousNode == null)
            {
                throw new InvalidOperationException("The rule after which to add the new rule was not found in the list.");
            }

            this.AllUserRules.AddAfter(previousNode, new CallRuleMetadata {
                Rule = newRule
            });
        }
Ejemplo n.º 15
0
 private void MoveRuleToFront(IFakeObjectCallRule rule)
 {
     var metadata = this.AllRules.Where(x => x.Rule.Equals(rule)).Single();
     this.MoveRuleToFront(metadata);
 }
Ejemplo n.º 16
0
        /// <summary>
        /// Adds a call rule to the fake object after the specified rule.
        /// </summary>
        /// <param name="previousRule">The rule after which to add a rule.</param>
        /// <param name="newRule">The rule to add.</param>
        internal void AddRuleAfter(IFakeObjectCallRule previousRule, IFakeObjectCallRule newRule)
        {
            var previousNode = this.AllUserRules.Nodes().FirstOrDefault(n => n.Value.Rule == previousRule);
            if (previousNode == null)
            {
                throw new InvalidOperationException("The rule after which to add the new rule was not found in the list.");
            }

            this.AllUserRules.AddAfter(previousNode, new CallRuleMetadata { Rule = newRule });
        }
Ejemplo n.º 17
0
 /// <summary>
 /// Adds a call rule last in the list of user rules, meaning it has the lowest priority possible.
 /// </summary>
 /// <param name="rule">The rule to add.</param>
 public virtual void AddRuleLast(IFakeObjectCallRule rule)
 {
     var newRule = new CallRuleMetadata { Rule = rule };
     FakeScope.Current.AddRuleLast(this, newRule);
 }
Ejemplo n.º 18
0
        /// <summary>
        /// Removes the specified rule for the fake object.
        /// </summary>
        /// <param name="rule">The rule to remove.</param>
        public virtual void RemoveRule(IFakeObjectCallRule rule)
        {
            Guard.AgainstNull(rule, "rule");

            var ruleToRemove = this.AllUserRules.Where(x => x.Rule.Equals(rule)).FirstOrDefault();
            this.AllUserRules.Remove(ruleToRemove);
        }
 public SelfInitializationRuleTests()
 {
     this.wrappedRule = A.Fake<IFakeObjectCallRule>();
     this.recorder = A.Fake<ISelfInitializingFakeRecorder>();
 }
Ejemplo n.º 20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SelfInitializationRule"/> class.
 /// </summary>
 /// <param name="wrappedRule">The wrapped rule.</param>
 /// <param name="recorder">The recorder.</param>
 public SelfInitializationRule(IFakeObjectCallRule wrappedRule, ISelfInitializingFakeRecorder recorder)
 {
     this.wrappedRule = wrappedRule;
     this.recorder = recorder;
 }
Ejemplo n.º 21
0
 public void OnAfterCallIntercepted(ICompletedFakeObjectCall interceptedCall, IFakeObjectCallRule ruleThatWasApplied)
 {
 }
            public void OnAfterCallIntercepted(ICompletedFakeObjectCall call, IFakeObjectCallRule ruleThatWasApplied)
            {
                Guard.AgainstNull(call, nameof(call));

                if (call.Method.Name.Equals("TrapConstraints"))
                {
                    this.realTrap.TrapConstraints(call.GetArgument<Action>(0));
                }
            }
Ejemplo n.º 23
0
 /// <summary>
 /// Creates a CallRuleMetadata representing a rule that has not yet been called.
 /// </summary>
 /// <param name="rule">The rule.</param>
 /// <returns>The new CallRuleMetadata instance.</returns>
 public static CallRuleMetadata NeverCalled(IFakeObjectCallRule rule) => new CallRuleMetadata(rule, 0);
Ejemplo n.º 24
0
 private CallRuleMetadata(IFakeObjectCallRule rule, int calledNumberOfTimes)
 {
     this.Rule = rule;
     this.CalledNumberOfTimes = calledNumberOfTimes;
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Creates a CallRuleMetadata representing a rule that has been called once.
 /// </summary>
 /// <param name="rule">The rule.</param>
 /// <returns>The new CallRuleMetadata instance.</returns>
 public static CallRuleMetadata CalledOnce(IFakeObjectCallRule rule) => new CallRuleMetadata(rule, 1);
Ejemplo n.º 26
0
 /// <summary>
 /// Adds a call rule last in the list of user rules, meaning it has the lowest priority possible.
 /// </summary>
 /// <param name="rule">The rule to add.</param>
 public virtual void AddRuleLast(IFakeObjectCallRule rule)
 {
     this.AllUserRules.AddLast(new CallRuleMetadata { Rule = rule });
 }
 public void Setup()
 {
     this.wrappedRule = A.Fake<IFakeObjectCallRule>();
     this.recorder = A.Fake<ISelfInitializingFakeRecorder>();
 }
            public void OnAfterCallIntercepted(ICompletedFakeObjectCall call, IFakeObjectCallRule ruleThatWasApplied)
            {
                Guard.AgainstNull(call, "call");

                if (call.Method.Name.Equals("TrapConstraints"))
                {
                    call.GetArgument<Action>(0).Invoke();
                }
            }
Ejemplo n.º 29
0
 public SelfInitializationRuleTests()
 {
     this.wrappedRule = A.Fake <IFakeObjectCallRule>();
     this.recorder    = A.Fake <ISelfInitializingFakeRecorder>();
 }
Ejemplo n.º 30
0
 /// <summary>
 /// Adds a call rule to the fake object.
 /// </summary>
 /// <param name="rule">The rule to add.</param>
 public virtual void AddRuleFirst(IFakeObjectCallRule rule)
 {
     this.AllUserRules.AddFirst(new CallRuleMetadata {
         Rule = rule
     });
 }
Ejemplo n.º 31
0
        private void MoveRuleToFront(IFakeObjectCallRule rule)
        {
            var metadata = this.AllRules.Where(x => x.Rule.Equals(rule)).Single();

            this.MoveRuleToFront(metadata);
        }
Ejemplo n.º 32
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SelfInitializationRule"/> class.
 /// </summary>
 /// <param name="wrappedRule">The wrapped rule.</param>
 /// <param name="recorder">The recorder.</param>
 public SelfInitializationRule(IFakeObjectCallRule wrappedRule, ISelfInitializingFakeRecorder recorder)
 {
     this.wrappedRule = wrappedRule;
     this.recorder    = recorder;
 }
Ejemplo n.º 33
0
 public void Setup()
 {
     this.wrappedRule = A.Fake <IFakeObjectCallRule>();
     this.recorder    = A.Fake <ISelfInitializingFakeRecorder>();
 }