/// <summary> /// /// </summary> /// <param name="actualActionInvokeInfo"></param> private void AssertExpectedParameterAsserts(ActualActionInvokeInfo actualActionInvokeInfo) { foreach (var parameterAssert in _parameterAsserts) { var index = actualActionInvokeInfo .ActionMethodInfo .GetParameters() .Select((p, ix) => new { Parameter = p, Index = ix }) .Single(p => p.Parameter.Name == parameterAssert.Name) .Index; var value = actualActionInvokeInfo.Arguments[index]; parameterAssert.Action(value); } }
/// <summary> /// /// </summary> /// <param name="actualActionInvokeInfo"></param> private void AssertExpectedParameterValues(ActualActionInvokeInfo actualActionInvokeInfo) { // TODO: Remove Xunit usage for (var ix = 0; ix < _expectedActionInvokeInfo.ActionMethodInfo.GetParameters().Length; ix++) { switch (_expectedActionInvokeInfo.ArgumentAssertKinds[ix]) { case ArgumentAssertKind.Value: Assert.Equal( _expectedActionInvokeInfo.Arguments[ix], actualActionInvokeInfo.Arguments[ix]); break; case ArgumentAssertKind.Any: break; default: throw new ArgumentOutOfRangeException(); } } }