public IAsyncResult DefaultBeginDisplayInitializationUI(IClientChannel channel, AsyncCallback callback, object state) { MockAsyncResult result = new MockAsyncResult(TimeSpan.FromSeconds(30), callback, state); result.Complete(); return(result); }
public MockCommunicationObject() { OpenAsyncResult = new MockAsyncResult(); CloseAsyncResult = new MockAsyncResult(); // Each overrideable method has a delegate property that // can be set to override it, please a default handler. // All the abstracts DefaultCloseTimeoutOverride = DefaultDefaultCloseTimeout; DefaultOpenTimeoutOverride = DefaultDefaultOpenTimeout; OnAbortOverride = DefaultOnAbort; OnOpenOverride = DefaultOnOpen; OnCloseOverride = DefaultOnClose; OnBeginOpenOverride = DefaultOnBeginOpen; OnEndOpenOverride = DefaultOnEndOpen; OnBeginCloseOverride = DefaultOnBeginClose; OnEndCloseOverride = DefaultOnEndClose; // All the virtuals OnOpeningOverride = DefaultOnOpening; OnOpenedOverride = DefaultOnOpened; OnClosingOverride = DefaultOnClosing; OnClosedOverride = DefaultOnClosed; OnFaultedOverride = DefaultOnFaulted; }
public MockChannelFactory(BindingContext context, MessageEncoderFactory encoderFactory) : base(context.Binding) { MessageEncoderFactory = encoderFactory; OnCreateChannelOverride = DefaultOnCreateChannel; OpenAsyncResult = new MockAsyncResult(); CloseAsyncResult = new MockAsyncResult(); // Each overrideable method has a delegate property that // can be set to override it, please a default handler. // CommunicationObject overrides DefaultCloseTimeoutOverride = DefaultDefaultCloseTimeout; DefaultOpenTimeoutOverride = DefaultDefaultOpenTimeout; OnAbortOverride = DefaultOnAbort; OnOpenOverride = DefaultOnOpen; OnCloseOverride = DefaultOnClose; OnBeginOpenOverride = DefaultOnBeginOpen; OnEndOpenOverride = DefaultOnEndOpen; OnBeginCloseOverride = DefaultOnBeginClose; OnEndCloseOverride = DefaultOnEndClose; // All the virtuals OnOpeningOverride = DefaultOnOpening; OnOpenedOverride = DefaultOnOpened; OnClosingOverride = DefaultOnClosing; OnClosedOverride = DefaultOnClosed; OnFaultedOverride = DefaultOnFaulted; }
public MockHttpListener() : base() { DefaultValue = DefaultValue.Mock; SetupAllProperties(); Setup(r => r.Prefixes).Returns(Prefixes); Setup(r => r.Start()).Callback(() => SetupGet(r => r.IsListening).Returns(true)); Setup(r => r.Stop()).Callback(() => SetupGet(r => r.IsListening).Returns(false)); Setup(r => r.BeginGetContext(It.IsAny <AsyncCallback>(), It.IsAny <object>())) .Callback((AsyncCallback callback, object state) => { ++BeginContextCallCount; BeginContextAction?.Invoke(); if (BeginContextTriggersCallback) { BeginContextTriggersCallback = false; MockAsyncResult.SetupGet(r => r.AsyncState).Returns(() => state); callback(MockAsyncResult.Object); } }); Setup(r => r.EndGetContext(MockAsyncResult.Object)) .Callback((IAsyncResult unused) => EndGetContextAction?.Invoke()) .Returns((IAsyncResult unused) => MockContext.Object); }
public MockChannelBase(ChannelManagerBase manager, MessageEncoderFactory encoderFactory, EndpointAddress address) : base(manager) { _address = address; _manager = manager; _encoder = encoderFactory.CreateSessionEncoder(); OpenAsyncResult = new MockAsyncResult(); CloseAsyncResult = new MockAsyncResult(); GetEndpointPropertyOverride = DefaultGetEndpointProperty; // CommunicationObject overrides DefaultCloseTimeoutOverride = DefaultDefaultCloseTimeout; DefaultOpenTimeoutOverride = DefaultDefaultOpenTimeout; OnAbortOverride = DefaultOnAbort; OnOpenOverride = DefaultOnOpen; OnCloseOverride = DefaultOnClose; OnBeginOpenOverride = DefaultOnBeginOpen; OnEndOpenOverride = DefaultOnEndOpen; OnBeginCloseOverride = DefaultOnBeginClose; OnEndCloseOverride = DefaultOnEndClose; // All the virtuals OnOpeningOverride = DefaultOnOpening; OnOpenedOverride = DefaultOnOpened; OnClosingOverride = DefaultOnClosing; OnClosedOverride = DefaultOnClosed; OnFaultedOverride = DefaultOnFaulted; }
public void ExecuteCore_Asynchronous_ActionNotFound() { // Arrange MockAsyncResult innerAsyncResult = new MockAsyncResult(); Mock <IAsyncActionInvoker> mockActionInvoker = new Mock <IAsyncActionInvoker>(); mockActionInvoker.Setup(o => o.BeginInvokeAction(It.IsAny <ControllerContext>(), "SomeAction", It.IsAny <AsyncCallback>(), It.IsAny <object>())).Returns(innerAsyncResult); mockActionInvoker.Setup(o => o.EndInvokeAction(innerAsyncResult)).Returns(false); RequestContext requestContext = GetRequestContext("SomeAction"); EmptyController controller = new EmptyController() { ActionInvoker = mockActionInvoker.Object }; // Act & assert IAsyncResult outerAsyncResult = ((IAsyncController)controller).BeginExecute(requestContext, null, null); Assert.False(controller.TempDataSaved); ((IAsyncController)controller).EndExecute(outerAsyncResult); Assert.True(controller.TempDataSaved); Assert.True(controller.HandleUnknownActionCalled); }
public IAsyncResult DefaultBeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state) { // Default is to create an already completed IAsyncResult containing // the input message. MockAsyncResult result = new MockAsyncResult(timeout, callback, state); result.Complete(message); return result; }
public void Complete_ThrowsIfCallbackThrows() { // Arrange MockAsyncCallback mockCallback = new MockAsyncCallback(true); MockAsyncResult mockAsyncResult = new MockAsyncResult(mockCallback.Callback, null); // Act/Assert Assert.Throws <InvalidOperationException>(() => mockAsyncResult.Complete(false)); }
public IAsyncResult DefaultBeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, object state) { // Default is to create an already completed IAsyncResult containing // the input message. MockAsyncResult result = new MockAsyncResult(timeout, callback, state); result.Complete(message); return(result); }
public void End_ThrowsOnInvalidAsyncResult() { Mock <IAsyncResult> mockIAsyncResult = new Mock <IAsyncResult>(); Assert.ThrowsArgument( () => MockAsyncResult.End <MockAsyncResult>(mockIAsyncResult.Object), "result" ); }
public void Complete_SetsCompletedSynchronously(bool completedSynchronously) { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); // Act mockAsyncResult.Complete(completedSynchronously); // Assert Assert.Equal(completedSynchronously, mockAsyncResult.CompletedSynchronously); }
public void Complete_SetsIsCompleted(bool completedSynchronously) { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); // Act mockAsyncResult.Complete(completedSynchronously); // Assert Assert.True(mockAsyncResult.IsCompleted); }
public void Complete_ThrowsOnMultipleCompletes(bool completedSynchronously) { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); // Act mockAsyncResult.Complete(completedSynchronously); // Assert Assert.Throws <InvalidOperationException>(() => mockAsyncResult.Complete(completedSynchronously)); }
public void AsyncWaitHandle_ThrowsIfAcessedAfterEndIsCalled(bool completedSynchronously) { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); mockAsyncResult.Complete(completedSynchronously); MockAsyncResult.End <MockAsyncResult>(mockAsyncResult); // Act/Assert Assert.Throws <InvalidOperationException>(() => mockAsyncResult.AsyncWaitHandle); }
public void AsyncWaitHandle_ReturnsIncompleteHandle() { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); // Act WaitHandle handle = mockAsyncResult.AsyncWaitHandle; bool signal = handle.WaitOne(_timeout); // Assert Assert.False(signal); }
public void AsyncWaitHandle_ReturnsSameHandle() { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); // Act WaitHandle handle1 = mockAsyncResult.AsyncWaitHandle; WaitHandle handle2 = mockAsyncResult.AsyncWaitHandle; // Assert Assert.Same(handle1, handle2); }
public void End_ThrowsIfCompletedWithException(bool completedSynchronously) { // Arrange MockAsyncCallback mockCallback = new MockAsyncCallback(false); MockAsyncResult mockAsyncResult = new MockAsyncResult(mockCallback.Callback, null); ApplicationException applicationException = new ApplicationException("Complete failed!"); mockAsyncResult.Complete(completedSynchronously, applicationException); // Act/Assert Assert.Throws <ApplicationException>(() => MockAsyncResult.End <MockAsyncResult>(mockAsyncResult)); }
public void Complete_CallsCallback(bool completedSynchronously) { // Arrange MockAsyncCallback mockCallback = new MockAsyncCallback(false); MockAsyncResult mockAsyncResult = new MockAsyncResult(mockCallback.Callback, null); // Act mockAsyncResult.Complete(completedSynchronously); // Assert Assert.True(mockCallback.WasInvoked); Assert.Same(mockAsyncResult, mockCallback.AsyncResult); }
public void Complete_SetsHandleWhenNotCompletingSynchronously() { // Arrange MockAsyncResult mockAsyncResult = new MockAsyncResult(null, null); // Act mockAsyncResult.Complete(false); WaitHandle handle = mockAsyncResult.AsyncWaitHandle; bool signal = handle.WaitOne(_timeout); // Assert Assert.True(signal); }
public void End_ThrowsIfCalledTwiceOnSameAsyncResult(bool completedSynchronously) { // Arrange MockAsyncCallback mockCallback = new MockAsyncCallback(false); MockAsyncResult mockAsyncResult = new MockAsyncResult(mockCallback.Callback, null); mockAsyncResult.Complete(completedSynchronously); // Act MockAsyncResult.End <MockAsyncResult>(mockAsyncResult); // Act Assert.Throws <InvalidOperationException>(() => MockAsyncResult.End <MockAsyncResult>(mockAsyncResult)); }
public void Constructor_Initializes() { // Arrange AsyncCallback callback = new AsyncCallback(_ => { }); object state = new object(); // Act MockAsyncResult mockAsyncResult = new MockAsyncResult(callback, state); // Assert Assert.True(mockAsyncResult.HasCallback); Assert.False(mockAsyncResult.IsCompleted); Assert.False(mockAsyncResult.CompletedSynchronously); Assert.Same(state, mockAsyncResult.AsyncState); }
public void End_ClosesHandle(bool completedSynchronously) { // Arrange MockAsyncCallback mockCallback = new MockAsyncCallback(false); MockAsyncResult mockAsyncResult = new MockAsyncResult(mockCallback.Callback, null); ApplicationException applicationException = new ApplicationException("Complete failed!"); mockAsyncResult.Complete(completedSynchronously); WaitHandle handle = mockAsyncResult.AsyncWaitHandle; // Act MockAsyncResult.End <MockAsyncResult>(mockAsyncResult); // Assert Assert.ThrowsObjectDisposed(() => handle.WaitOne(), ""); }
public void ProcessRequestAsync_AsyncController_NormalExecution() { // Arrange using (MockAsyncResult innerAsyncResult = new MockAsyncResult()) { bool disposeWasCalled = false; Mock <IAsyncController> mockController = new Mock <IAsyncController>(); mockController .Setup( o => o.BeginExecute( It.IsAny <RequestContext>(), It.IsAny <AsyncCallback>(), It.IsAny <object>() ) ) .Returns(innerAsyncResult); mockController .As <IDisposable>() .Setup(o => o.Dispose()) .Callback( delegate { disposeWasCalled = true; } ); MvcHandler handler = GetMvcHandler(mockController.Object); // Act & assert IAsyncResult outerAsyncResult = handler.BeginProcessRequest( handler.RequestContext.HttpContext, null, null ); Assert.False(disposeWasCalled); handler.EndProcessRequest(outerAsyncResult); Assert.True(disposeWasCalled); mockController.Verify(o => o.EndExecute(innerAsyncResult), Times.AtMostOnce()); } }
public void ProcessRequestAsync_AsyncController_NormalExecution() { // Arrange MockAsyncResult innerAsyncResult = new MockAsyncResult(); bool disposeWasCalled = false; Mock <IAsyncController> mockController = new Mock <IAsyncController>(); mockController.Expect(o => o.BeginExecute(It.IsAny <RequestContext>(), It.IsAny <AsyncCallback>(), It.IsAny <object>())).Returns(innerAsyncResult); mockController.Expect(o => o.EndExecute(innerAsyncResult)).AtMostOnce(); mockController.As <IDisposable>().Expect(o => o.Dispose()).Callback(delegate { disposeWasCalled = true; }); MvcHandler handler = GetMvcHandler(mockController.Object); // Act & assert IAsyncResult outerAsyncResult = handler.BeginProcessRequest(handler.RequestContext.HttpContext, null, null); Assert.IsFalse(disposeWasCalled, "Dispose shouldn't have been called yet."); handler.EndProcessRequest(outerAsyncResult); Assert.IsTrue(disposeWasCalled); }
public void ExecuteCore_Synchronous_ActionNotFound() { // Arrange MockAsyncResult innerAsyncResult = new MockAsyncResult(); Mock <IActionInvoker> mockActionInvoker = new Mock <IActionInvoker>(); mockActionInvoker.Expect(o => o.InvokeAction(It.IsAny <ControllerContext>(), "SomeAction")).Returns(false); RequestContext requestContext = GetRequestContext("SomeAction"); EmptyController controller = new EmptyController() { ActionInvoker = mockActionInvoker.Object }; // Act & assert IAsyncResult outerAsyncResult = ((IAsyncController)controller).BeginExecute(requestContext, null, null); Assert.IsFalse(controller.TempDataSaved, "TempData shouldn't have been saved yet."); ((IAsyncController)controller).EndExecute(outerAsyncResult); Assert.IsTrue(controller.TempDataSaved); Assert.IsTrue(controller.HandleUnknownActionCalled); }
public IAsyncResult DefaultBeginDisplayInitializationUI(IClientChannel channel, AsyncCallback callback, object state) { MockAsyncResult result = new MockAsyncResult(TimeSpan.FromSeconds(30), callback, state); result.Complete(); return result; }
public void End_ThrowsOnNullAsyncResult() { Assert.ThrowsArgumentNull(() => MockAsyncResult.End <MockAsyncResult>(null), "result"); }