public void DescribeTo(TextWriter writer) { if (MethodMatcher is MethodMatcher) { writer.Write(((MethodMatcher)MethodMatcher).ReturnType); writer.Write(" "); } writer.Write(Receiver.MockName); writer.Write(_methodSeparator); if (MethodMatcher != null) { MethodMatcher.DescribeTo(writer); } ArgumentsMatcher.DescribeTo(writer); if (_extraMatchers.Count > 0) { writer.Write(" Matching["); for (int i = 0; i < _extraMatchers.Count; i++) { if (i != 0) { writer.Write(", "); } _extraMatchers[i].DescribeTo(writer); } writer.Write("]"); } if (_actions.Count > 0) { writer.Write(" will "); (_actions[0]).DescribeTo(writer); for (int i = 1; i < _actions.Count; i++) { if (i != 0) { writer.Write(", "); } _actions[i].DescribeTo(writer); } } if (IsValid) { writer.Write(" [EXPECTED: "); writer.Write(_expectationDescription); writer.Write(" CALLED: "); writer.Write(_callCount); writer.Write(" time"); if (_callCount != 1) { writer.Write("s"); } writer.Write("]"); } else { writer.Write(" [EXPECTATION NOT VALID because of runtime error or incomplete setup]"); } if (!string.IsNullOrEmpty(_expectationComment)) { writer.Write(" Comment: "); writer.Write(_expectationComment); } writer.WriteLine(); }