|
|
@ -68,18 +68,61 @@ describe('end-to-end', function() { |
|
|
|
server.shutdown(); |
|
|
|
server.shutdown(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
it('should start and end a request without error', function(complete) { |
|
|
|
it('should start and end a request without error', function(complete) { |
|
|
|
var done = multiDone(function() { |
|
|
|
var done = multiDone(complete, 2); |
|
|
|
complete(); |
|
|
|
|
|
|
|
}, 2); |
|
|
|
|
|
|
|
var deadline = new Date(); |
|
|
|
var deadline = new Date(); |
|
|
|
deadline.setSeconds(deadline.getSeconds() + 3); |
|
|
|
deadline.setSeconds(deadline.getSeconds() + 3); |
|
|
|
var status_text = 'xyz'; |
|
|
|
var status_text = 'xyz'; |
|
|
|
var call = new grpc.Call(channel, |
|
|
|
var call = new grpc.Call(channel, |
|
|
|
'dummy_method', |
|
|
|
'dummy_method', |
|
|
|
deadline); |
|
|
|
deadline); |
|
|
|
call.invoke(function(event) { |
|
|
|
call.invoke(function(event) { |
|
|
|
|
|
|
|
assert.strictEqual(event.type, |
|
|
|
|
|
|
|
grpc.completionType.CLIENT_METADATA_READ); |
|
|
|
|
|
|
|
},function(event) { |
|
|
|
|
|
|
|
assert.strictEqual(event.type, grpc.completionType.FINISHED); |
|
|
|
|
|
|
|
var status = event.data; |
|
|
|
|
|
|
|
assert.strictEqual(status.code, grpc.status.OK); |
|
|
|
|
|
|
|
assert.strictEqual(status.details, status_text); |
|
|
|
|
|
|
|
done(); |
|
|
|
|
|
|
|
}, 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
server.requestCall(function(event) { |
|
|
|
|
|
|
|
assert.strictEqual(event.type, grpc.completionType.SERVER_RPC_NEW); |
|
|
|
|
|
|
|
var server_call = event.call; |
|
|
|
|
|
|
|
assert.notEqual(server_call, null); |
|
|
|
|
|
|
|
server_call.serverAccept(function(event) { |
|
|
|
|
|
|
|
assert.strictEqual(event.type, grpc.completionType.FINISHED); |
|
|
|
|
|
|
|
}, 0); |
|
|
|
|
|
|
|
server_call.serverEndInitialMetadata(0); |
|
|
|
|
|
|
|
server_call.startWriteStatus( |
|
|
|
|
|
|
|
grpc.status.OK, |
|
|
|
|
|
|
|
status_text, |
|
|
|
|
|
|
|
function(event) { |
|
|
|
|
|
|
|
assert.strictEqual(event.type, |
|
|
|
|
|
|
|
grpc.completionType.FINISH_ACCEPTED); |
|
|
|
|
|
|
|
assert.strictEqual(event.data, grpc.opError.OK); |
|
|
|
|
|
|
|
done(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
call.writesDone(function(event) { |
|
|
|
|
|
|
|
assert.strictEqual(event.type, |
|
|
|
|
|
|
|
grpc.completionType.FINISH_ACCEPTED); |
|
|
|
|
|
|
|
assert.strictEqual(event.data, grpc.opError.OK); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
it('should successfully send and receive metadata', function(complete) { |
|
|
|
|
|
|
|
var done = multiDone(complete, 2); |
|
|
|
|
|
|
|
var deadline = new Date(); |
|
|
|
|
|
|
|
deadline.setSeconds(deadline.getSeconds() + 3); |
|
|
|
|
|
|
|
var status_text = 'xyz'; |
|
|
|
|
|
|
|
var call = new grpc.Call(channel, |
|
|
|
|
|
|
|
'dummy_method', |
|
|
|
|
|
|
|
deadline); |
|
|
|
|
|
|
|
call.addMetadata({'client_key': ['client_value']}); |
|
|
|
|
|
|
|
call.invoke(function(event) { |
|
|
|
assert.strictEqual(event.type, |
|
|
|
assert.strictEqual(event.type, |
|
|
|
grpc.completionType.CLIENT_METADATA_READ); |
|
|
|
grpc.completionType.CLIENT_METADATA_READ); |
|
|
|
|
|
|
|
assert.strictEqual(event.data.server_key[0].toString(), 'server_value'); |
|
|
|
},function(event) { |
|
|
|
},function(event) { |
|
|
|
assert.strictEqual(event.type, grpc.completionType.FINISHED); |
|
|
|
assert.strictEqual(event.type, grpc.completionType.FINISHED); |
|
|
|
var status = event.data; |
|
|
|
var status = event.data; |
|
|
@ -90,11 +133,14 @@ describe('end-to-end', function() { |
|
|
|
|
|
|
|
|
|
|
|
server.requestCall(function(event) { |
|
|
|
server.requestCall(function(event) { |
|
|
|
assert.strictEqual(event.type, grpc.completionType.SERVER_RPC_NEW); |
|
|
|
assert.strictEqual(event.type, grpc.completionType.SERVER_RPC_NEW); |
|
|
|
|
|
|
|
assert.strictEqual(event.data.metadata.client_key[0].toString(), |
|
|
|
|
|
|
|
'client_value'); |
|
|
|
var server_call = event.call; |
|
|
|
var server_call = event.call; |
|
|
|
assert.notEqual(server_call, null); |
|
|
|
assert.notEqual(server_call, null); |
|
|
|
server_call.serverAccept(function(event) { |
|
|
|
server_call.serverAccept(function(event) { |
|
|
|
assert.strictEqual(event.type, grpc.completionType.FINISHED); |
|
|
|
assert.strictEqual(event.type, grpc.completionType.FINISHED); |
|
|
|
}, 0); |
|
|
|
}, 0); |
|
|
|
|
|
|
|
server_call.addMetadata({'server_key': ['server_value']}); |
|
|
|
server_call.serverEndInitialMetadata(0); |
|
|
|
server_call.serverEndInitialMetadata(0); |
|
|
|
server_call.startWriteStatus( |
|
|
|
server_call.startWriteStatus( |
|
|
|
grpc.status.OK, |
|
|
|
grpc.status.OK, |
|
|
@ -115,10 +161,7 @@ describe('end-to-end', function() { |
|
|
|
it('should send and receive data without error', function(complete) { |
|
|
|
it('should send and receive data without error', function(complete) { |
|
|
|
var req_text = 'client_request'; |
|
|
|
var req_text = 'client_request'; |
|
|
|
var reply_text = 'server_response'; |
|
|
|
var reply_text = 'server_response'; |
|
|
|
var done = multiDone(function() { |
|
|
|
var done = multiDone(complete, 6); |
|
|
|
complete(); |
|
|
|
|
|
|
|
server.shutdown(); |
|
|
|
|
|
|
|
}, 6); |
|
|
|
|
|
|
|
var deadline = new Date(); |
|
|
|
var deadline = new Date(); |
|
|
|
deadline.setSeconds(deadline.getSeconds() + 3); |
|
|
|
deadline.setSeconds(deadline.getSeconds() + 3); |
|
|
|
var status_text = 'success'; |
|
|
|
var status_text = 'success'; |
|
|
|