aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/node/test/common_test.js
diff options
context:
space:
mode:
authorGravatar murgatroid99 <mlumish@google.com>2017-03-21 11:25:01 -0700
committerGravatar murgatroid99 <mlumish@google.com>2017-03-21 11:25:01 -0700
commitb30685481679ca8a98328bbb98d872b577c7c39b (patch)
treee241d4389be20f34a2b0e2683f7b9d70269c5980 /src/node/test/common_test.js
parentc8e6ac4bf32bee5b22c04541a03ab11517a51651 (diff)
Improve ProtoBuf.js version heuristic, add tests for oneof decoding
Diffstat (limited to 'src/node/test/common_test.js')
-rw-r--r--src/node/test/common_test.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/node/test/common_test.js b/src/node/test/common_test.js
index f9efd8231d..4b7a8c2253 100644
--- a/src/node/test/common_test.js
+++ b/src/node/test/common_test.js
@@ -155,3 +155,27 @@ describe('Proto message bytes serialize and deserialize', function() {
assert.deepEqual(unpackedDeserialized, expectedDeserialize);
});
});
+describe('Proto message oneof serialize and deserialize', function() {
+ var oneofSerialize = serializeCls(messages_proto.OneOfValues);
+ var oneofDeserialize = deserializeCls(
+ messages_proto.OneOfValues, default_options);
+ it('Should have idempotent round trips', function() {
+ var test_message = {oneof_choice: 'int_choice', int_choice: 5};
+ var serialized1 = oneofSerialize(test_message);
+ var deserialized1 = oneofDeserialize(serialized1);
+ assert.equal(deserialized1.int_choice, 5);
+ var serialized2 = oneofSerialize(deserialized1);
+ var deserialized2 = oneofDeserialize(serialized2);
+ assert.deepEqual(deserialized1, deserialized2);
+ });
+ it('Should emit a property indicating which field was chosen', function() {
+ var test_message1 = {oneof_choice: 'int_choice', int_choice: 5};
+ var serialized1 = oneofSerialize(test_message1);
+ var deserialized1 = oneofDeserialize(serialized1);
+ assert.equal(deserialized1.oneof_choice, 'int_choice');
+ var test_message2 = {oneof_choice: 'string_choice', string_choice: 'abc'};
+ var serialized2 = oneofSerialize(test_message2);
+ var deserialized2 = oneofDeserialize(serialized2);
+ assert.equal(deserialized2.oneof_choice, 'int_choice');
+ });
+});