aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/node/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/node/test')
-rw-r--r--src/node/test/echo_service.proto39
-rw-r--r--src/node/test/surface_test.js30
-rw-r--r--src/node/test/test_service.proto6
3 files changed, 72 insertions, 3 deletions
diff --git a/src/node/test/echo_service.proto b/src/node/test/echo_service.proto
new file mode 100644
index 0000000000..b2c7e3dc23
--- /dev/null
+++ b/src/node/test/echo_service.proto
@@ -0,0 +1,39 @@
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+message EchoMessage {
+ string value = 1;
+ int32 value2 = 2;
+}
+
+service EchoService {
+ rpc Echo (EchoMessage) returns (EchoMessage);
+} \ No newline at end of file
diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js
index 38f9028bff..9c72c29fab 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -99,6 +99,36 @@ describe('Surface server constructor', function() {
}, /math.Math/);
});
});
+describe('Echo service', function() {
+ var server;
+ var client;
+ before(function() {
+ var test_proto = ProtoBuf.loadProtoFile(__dirname + '/echo_service.proto');
+ var echo_service = test_proto.lookup('EchoService');
+ var Server = grpc.buildServer([echo_service]);
+ server = new Server({
+ 'EchoService': {
+ echo: function(call, callback) {
+ callback(null, call.request);
+ }
+ }
+ });
+ var port = server.bind('localhost:0');
+ var Client = surface_client.makeProtobufClientConstructor(echo_service);
+ client = new Client('localhost:' + port);
+ server.listen();
+ });
+ after(function() {
+ server.shutdown();
+ });
+ it('should echo the recieved message directly', function(done) {
+ client.echo({value: 'test value', value2: 3}, function(error, response) {
+ assert.ifError(error);
+ assert.deepEqual(response, {value: 'test value', value2: 3});
+ done();
+ });
+ });
+});
describe('Generic client and server', function() {
function toString(val) {
return val.toString();
diff --git a/src/node/test/test_service.proto b/src/node/test/test_service.proto
index 5d3d891841..564169829c 100644
--- a/src/node/test/test_service.proto
+++ b/src/node/test/test_service.proto
@@ -27,14 +27,14 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-syntax = "proto2";
+syntax = "proto3";
message Request {
- optional bool error = 1;
+ bool error = 1;
}
message Response {
- optional int32 count = 1;
+ int32 count = 1;
}
service TestService {