Commit b2526215 authored by Jon Skeet's avatar Jon Skeet

Use remoting mocks to work with mono

parent 37a7983a
...@@ -71,7 +71,7 @@ namespace Google.ProtocolBuffers { ...@@ -71,7 +71,7 @@ namespace Google.ProtocolBuffers {
MockRepository mocks = new MockRepository(); MockRepository mocks = new MockRepository();
FooRequest fooRequest = FooRequest.CreateBuilder().Build(); FooRequest fooRequest = FooRequest.CreateBuilder().Build();
FooResponse fooResponse = FooResponse.CreateBuilder().Build(); FooResponse fooResponse = FooResponse.CreateBuilder().Build();
IRpcController controller = mocks.StrictMock<IRpcController>(); IRpcController controller = mocks.StrictMockWithRemoting<IRpcController>();
bool fooCalled = false; bool fooCalled = false;
...@@ -110,10 +110,16 @@ namespace Google.ProtocolBuffers { ...@@ -110,10 +110,16 @@ namespace Google.ProtocolBuffers {
public void GeneratedStubFooCall() { public void GeneratedStubFooCall() {
FooRequest fooRequest = FooRequest.CreateBuilder().Build(); FooRequest fooRequest = FooRequest.CreateBuilder().Build();
MockRepository mocks = new MockRepository(); MockRepository mocks = new MockRepository();
IRpcChannel mockChannel = mocks.StrictMock<IRpcChannel>(); IRpcChannel mockChannel = mocks.StrictMockWithRemoting<IRpcChannel>();
IRpcController mockController = mocks.StrictMock<IRpcController>(); IRpcController mockController = mocks.StrictMockWithRemoting<IRpcController>();
TestService service = TestService.CreateStub(mockChannel); TestService service = TestService.CreateStub(mockChannel);
Action<FooResponse> doneHandler = mocks.StrictMock<Action<FooResponse>>(); bool doneCalled = false;
// TODO(jonskeet): Use Rhino for this (to get ordering) when Mono works with it properly
Action<FooResponse> doneHandler = response => {
Assert.IsFalse(doneCalled);
doneCalled = true;
Assert.AreEqual(FooResponse.DefaultInstance, response);
};
using (mocks.Record()) { using (mocks.Record()) {
...@@ -123,7 +129,6 @@ namespace Google.ProtocolBuffers { ...@@ -123,7 +129,6 @@ namespace Google.ProtocolBuffers {
.Constraints(Is.Same(FooDescriptor), Is.Same(mockController), Is.Same(fooRequest), .Constraints(Is.Same(FooDescriptor), Is.Same(mockController), Is.Same(fooRequest),
Is.Same(FooResponse.DefaultInstance), Is.Anything()) Is.Same(FooResponse.DefaultInstance), Is.Anything())
.Do((CallFooDelegate) ((p1, p2, p3, response, done) => done(response))); .Do((CallFooDelegate) ((p1, p2, p3, response, done) => done(response)));
doneHandler.Invoke(FooResponse.DefaultInstance);
} }
service.Foo(mockController, fooRequest, doneHandler); service.Foo(mockController, fooRequest, doneHandler);
...@@ -136,7 +141,7 @@ namespace Google.ProtocolBuffers { ...@@ -136,7 +141,7 @@ namespace Google.ProtocolBuffers {
MockRepository mocks = new MockRepository(); MockRepository mocks = new MockRepository();
BarRequest barRequest = BarRequest.CreateBuilder().Build(); BarRequest barRequest = BarRequest.CreateBuilder().Build();
BarResponse barResponse = BarResponse.CreateBuilder().Build(); BarResponse barResponse = BarResponse.CreateBuilder().Build();
IRpcController controller = mocks.StrictMock<IRpcController>(); IRpcController controller = mocks.StrictMockWithRemoting<IRpcController>();
bool barCalled = false; bool barCalled = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment