aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2011-10-04 15:11:52 -0500
committerrogerk <devnull@localhost>2011-10-04 15:11:52 -0500
commit6f5bf8d48bda3f415796428f16b33be662a08329 (patch)
tree22f97d56aa5e0cd6c71fecf2ebf3feb7b7fc251e /src
parent2622011a5dbd8dc20b9a49e10290047058fddc87 (diff)
downloadprotobuf-6f5bf8d48bda3f415796428f16b33be662a08329.tar.gz
protobuf-6f5bf8d48bda3f415796428f16b33be662a08329.tar.bz2
protobuf-6f5bf8d48bda3f415796428f16b33be662a08329.zip
Removed dependency on Rhino.Mocks
Added CleanAll batch file Added the now rhino-free service test to silverlight
Diffstat (limited to 'src')
-rw-r--r--src/ProtoGen.Test/ProtoGen.Test.csproj4
-rw-r--r--src/ProtocolBuffers.Test/ProtocolBuffers.Test(Silverlight).csproj1
-rw-r--r--src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj4
-rw-r--r--src/ProtocolBuffers.Test/ServiceTest.cs153
-rw-r--r--src/ProtocolBuffers.sln4
-rw-r--r--src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj4
-rw-r--r--src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj4
7 files changed, 102 insertions, 72 deletions
diff --git a/src/ProtoGen.Test/ProtoGen.Test.csproj b/src/ProtoGen.Test/ProtoGen.Test.csproj
index 5325be51..a3883ccf 100644
--- a/src/ProtoGen.Test/ProtoGen.Test.csproj
+++ b/src/ProtoGen.Test/ProtoGen.Test.csproj
@@ -59,10 +59,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\NUnit\lib\nunit.framework.dll</HintPath>
</Reference>
- <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
- </Reference>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Data" />
diff --git a/src/ProtocolBuffers.Test/ProtocolBuffers.Test(Silverlight).csproj b/src/ProtocolBuffers.Test/ProtocolBuffers.Test(Silverlight).csproj
index 4ff2e676..9842dd6a 100644
--- a/src/ProtocolBuffers.Test/ProtocolBuffers.Test(Silverlight).csproj
+++ b/src/ProtocolBuffers.Test/ProtocolBuffers.Test(Silverlight).csproj
@@ -117,6 +117,7 @@
<Compile Include="ReflectionTester.cs" />
<Compile Include="ReusableBuilderTest.cs" />
<Compile Include="SerializableAttribute.cs" />
+ <Compile Include="ServiceTest.cs" />
<Compile Include="TestCornerCases.cs" />
<Compile Include="TestMimeMessageFormats.cs" />
<Compile Include="TestProtos\UnitTestCSharpOptionsProtoFile.cs" />
diff --git a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
index 24547a47..2b270afd 100644
--- a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+++ b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -62,10 +62,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\NUnit\lib\nunit.framework.dll</HintPath>
</Reference>
- <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
- </Reference>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Data" />
diff --git a/src/ProtocolBuffers.Test/ServiceTest.cs b/src/ProtocolBuffers.Test/ServiceTest.cs
index 4678ca7b..ee28ca1c 100644
--- a/src/ProtocolBuffers.Test/ServiceTest.cs
+++ b/src/ProtocolBuffers.Test/ServiceTest.cs
@@ -38,9 +38,6 @@ using System;
using Google.ProtocolBuffers.Descriptors;
using Google.ProtocolBuffers.TestProtos;
using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Rhino.Mocks;
-using Rhino.Mocks.Constraints;
-using Is = Rhino.Mocks.Constraints.Is;
namespace Google.ProtocolBuffers
{
@@ -77,10 +74,9 @@ namespace Google.ProtocolBuffers
[TestMethod]
public void CallMethodFoo()
{
- MockRepository mocks = new MockRepository();
FooRequest fooRequest = FooRequest.CreateBuilder().Build();
FooResponse fooResponse = FooResponse.CreateBuilder().Build();
- IRpcController controller = mocks.StrictMock<IRpcController>();
+ IRpcController controller = new RpcTestController();
bool fooCalled = false;
@@ -98,60 +94,18 @@ namespace Google.ProtocolBuffers
doneHandlerCalled = true;
});
- using (mocks.Record())
- {
- // No mock interactions to record
- }
-
service.CallMethod(FooDescriptor, controller, fooRequest, doneHandler);
Assert.IsTrue(doneHandlerCalled);
Assert.IsTrue(fooCalled);
- mocks.VerifyAll();
- }
-
- private delegate void CallFooDelegate(MethodDescriptor descriptor, IRpcController controller,
- IMessage request, IMessage response, Action<IMessage> doneHandler);
-
- /// <summary>
- /// Tests the generated stub handling of Foo. By this stage we're reasonably confident
- /// that the choice between Foo and Bar is arbitrary, hence the lack of a corresponding Bar
- /// test.
- /// </summary>
- [TestMethod]
- [Ignore, System.ComponentModel.Description("Crashes Mono - needs further investigation")]
- public void GeneratedStubFooCall()
- {
- FooRequest fooRequest = FooRequest.CreateBuilder().Build();
- MockRepository mocks = new MockRepository();
- IRpcChannel mockChannel = mocks.StrictMock<IRpcChannel>();
- IRpcController mockController = mocks.StrictMock<IRpcController>();
- TestGenericService service = TestGenericService.CreateStub(mockChannel);
- Action<FooResponse> doneHandler = mocks.StrictMock<Action<FooResponse>>();
-
- using (mocks.Record())
- {
- // Nasty way of mocking out "the channel calls the done handler".
- Expect.Call(() => mockChannel.CallMethod(null, null, null, null, null))
- .IgnoreArguments()
- .Constraints(Is.Same(FooDescriptor), Is.Same(mockController), Is.Same(fooRequest),
- Is.Same(FooResponse.DefaultInstance), Is.Anything())
- .Do((CallFooDelegate) ((p1, p2, p3, response, done) => done(response)));
- doneHandler(FooResponse.DefaultInstance);
- }
-
- service.Foo(mockController, fooRequest, doneHandler);
-
- mocks.VerifyAll();
}
[TestMethod]
public void CallMethodBar()
{
- MockRepository mocks = new MockRepository();
BarRequest barRequest = BarRequest.CreateBuilder().Build();
BarResponse barResponse = BarResponse.CreateBuilder().Build();
- IRpcController controller = mocks.StrictMock<IRpcController>();
+ IRpcController controller = new RpcTestController();
bool barCalled = false;
@@ -169,19 +123,109 @@ namespace Google.ProtocolBuffers
doneHandlerCalled = true;
});
- using (mocks.Record())
- {
- // No mock interactions to record
- }
-
service.CallMethod(BarDescriptor, controller, barRequest, doneHandler);
Assert.IsTrue(doneHandlerCalled);
Assert.IsTrue(barCalled);
- mocks.VerifyAll();
}
+ [TestMethod]
+ public void GeneratedStubFooCall()
+ {
+ IRpcChannel channel = new RpcTestChannel();
+ IRpcController controller = new RpcTestController();
+ TestGenericService service = TestGenericService.CreateStub(channel);
+ FooResponse fooResponse = null;
+ Action<FooResponse> doneHandler = r => fooResponse = r;
+
+ service.Foo(controller, FooRequest.DefaultInstance, doneHandler);
+
+ Assert.IsNotNull(fooResponse);
+ Assert.IsFalse(controller.Failed);
+ }
+
+ [TestMethod]
+ public void GeneratedStubBarCallFails()
+ {
+ IRpcChannel channel = new RpcTestChannel();
+ IRpcController controller = new RpcTestController();
+ TestGenericService service = TestGenericService.CreateStub(channel);
+ BarResponse barResponse = null;
+ Action<BarResponse> doneHandler = r => barResponse = r;
+
+ service.Bar(controller, BarRequest.DefaultInstance, doneHandler);
+
+ Assert.IsNull(barResponse);
+ Assert.IsTrue(controller.Failed);
+ }
+
+ #region RpcTestController
+ private class RpcTestController : IRpcController
+ {
+ public string TestFailedReason { get; set; }
+ public bool TestCancelled { get; set; }
+ public Action<object> TestCancelledCallback { get; set; }
+
+ void IRpcController.Reset()
+ {
+ TestFailedReason = null;
+ TestCancelled = false;
+ TestCancelledCallback = null;
+ }
+
+ bool IRpcController.Failed
+ {
+ get { return TestFailedReason != null; }
+ }
+
+ string IRpcController.ErrorText
+ {
+ get { return TestFailedReason; }
+ }
+
+ void IRpcController.StartCancel()
+ {
+ TestCancelled = true;
+ if (TestCancelledCallback != null)
+ TestCancelledCallback(this);
+ }
+ void IRpcController.SetFailed(string reason)
+ {
+ TestFailedReason = reason;
+ }
+
+ bool IRpcController.IsCanceled()
+ {
+ return TestCancelled;
+ }
+
+ void IRpcController.NotifyOnCancel(Action<object> callback)
+ {
+ TestCancelledCallback = callback;
+ }
+ }
+ #endregion
+ #region RpcTestChannel
+ private class RpcTestChannel : IRpcChannel
+ {
+ public MethodDescriptor TestMethodCalled { get; set; }
+
+ void IRpcChannel.CallMethod(MethodDescriptor method, IRpcController controller, IMessage request, IMessage responsePrototype, Action<IMessage> done)
+ {
+ TestMethodCalled = method;
+ try
+ {
+ done(FooResponse.DefaultInstance);
+ }
+ catch (Exception e)
+ {
+ controller.SetFailed(e.Message);
+ }
+ }
+ }
+ #endregion
+ #region TestServiceImpl
private class TestServiceImpl : TestGenericService
{
private readonly Action<FooRequest, Action<FooResponse>> fooHandler;
@@ -213,5 +257,6 @@ namespace Google.ProtocolBuffers
barHandler(request, done);
}
}
+ #endregion
}
} \ No newline at end of file
diff --git a/src/ProtocolBuffers.sln b/src/ProtocolBuffers.sln
index f9c75502..e174eddb 100644
--- a/src/ProtocolBuffers.sln
+++ b/src/ProtocolBuffers.sln
@@ -1,5 +1,5 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "proto", "proto", "{1F896D5C-5FC2-4671-9216-781CB8187EC7}"
ProjectSection(SolutionItems) = preProject
..\protos\tutorial\addressbook.proto = ..\protos\tutorial\addressbook.proto
diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
index d10aac15..0adb9135 100644
--- a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
+++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
@@ -43,10 +43,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\NUnit\lib\nunit.framework.dll</HintPath>
</Reference>
- <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
- </Reference>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Data" />
diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
index b0a2b7c1..e516198a 100644
--- a/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
+++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
@@ -43,10 +43,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\NUnit\lib\nunit.framework.dll</HintPath>
</Reference>
- <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
- </Reference>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Data" />