Esempio n. 1
0
        private static void LockShouldBeReleasedWhenCallThrowsException <T>(LockAssertions lockAssertions,
                                                                            T wrappingObject, T wrappedObjectMock,
                                                                            Action <T> callToCheck) where T : class
        {
            try
            {
                wrappedObjectMock.When(callToCheck).Do(_ =>
                {
                    lockAssertions.AssertLocked();
                    throw new Exception();
                });

                callToCheck(wrappingObject);
                throw new Exception(
                          "The specified method was probably not called by the proxy with exactly the same arguments it received");
            }
            catch
            {
                lockAssertions.AssertUnlocked();
            }
            finally
            {
                wrappedObjectMock.ClearReceivedCalls();
            }
        }
Esempio n. 2
0
        private static void LockShouldBeReleasedAfterACall <T, TReturn>(T wrappingObject, T wrappedObjectMock,
                                                                        Func <T, TReturn> callToCheck,
                                                                        LockAssertions lockAssertions)
            where T : class
        {
            try
            {
                var cannedResult = Any.Instance <TReturn>();
                callToCheck(wrappedObjectMock).Returns((ci) =>
                {
                    lockAssertions.AssertLocked();
                    return(cannedResult);
                });

                lockAssertions.AssertUnlocked();
                var actualResult = callToCheck(wrappingObject);
                lockAssertions.AssertUnlocked();
                Equal(cannedResult, actualResult,
                      "The specified method was probably not called by the proxy with exactly the same arguments it received or it did not return the value obtained from wrapped call");
            }
            finally
            {
                wrappedObjectMock.ClearReceivedCalls();
            }
        }
Esempio n. 3
0
 private static void LockShouldBeReleasedAfterACall <T>(T wrappingObject, T wrappedObjectMock, Action <T> callToCheck,
                                                        LockAssertions lockAssertions)
     where T : class
 {
     try
     {
         wrappedObjectMock.When(callToCheck).Do(_ => lockAssertions.AssertLocked());
         lockAssertions.AssertUnlocked();
         callToCheck(wrappingObject);
         lockAssertions.AssertUnlocked();
         callToCheck(wrappedObjectMock.Received(1));
     }
     finally
     {
         wrappedObjectMock.ClearReceivedCalls();
     }
 }
Esempio n. 4
0
 public static void Synchronizes <T, TReturn>(T wrappingObject, Func <T, TReturn> callToCheck, LockAssertions lockAssertions, T wrappedObjectMock) where T : class
 {
     NSubstituteIsInCorrectVersion(wrappedObjectMock);
     LockShouldBeReleasedAfterACall(wrappingObject, wrappedObjectMock, callToCheck, lockAssertions);
     LockShouldBeReleasedWhenCallThrowsException(lockAssertions, wrappingObject, wrappedObjectMock, t => callToCheck(t));
 }
Esempio n. 5
0
 public static void AssertSynchronizes <T, TReturn>(this T wrappingObject, Func <T, TReturn> callToCheck, LockAssertions lockAssertions, T wrappedObjectMock) where T : class
 {
     XAssert.Synchronizes(wrappingObject, callToCheck, lockAssertions, wrappedObjectMock);
 }
Esempio n. 6
0
 public static void AssertSynchronizes <T>(this T wrappingObject, T wrappedObjectMock, Action <T> callToCheck, LockAssertions lockAssertions) where T : class
 {
     XAssert.Synchronizes(wrappingObject, callToCheck, lockAssertions, wrappedObjectMock);
 }