123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- // Copyright 2008 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- goog.provide('goog.proto2.FieldDescriptorTest');
- goog.setTestOnly('goog.proto2.FieldDescriptorTest');
- goog.require('goog.proto2.FieldDescriptor');
- goog.require('goog.proto2.Message');
- goog.require('goog.testing.jsunit');
- function testFieldDescriptorConstruction() {
- var messageType = {};
- var fieldDescriptor = new goog.proto2.FieldDescriptor(messageType, 10, {
- name: 'test',
- repeated: true,
- packed: true,
- fieldType: goog.proto2.FieldDescriptor.FieldType.INT32,
- type: Number
- });
- assertEquals(10, fieldDescriptor.getTag());
- assertEquals('test', fieldDescriptor.getName());
- assertEquals(true, fieldDescriptor.isRepeated());
- assertEquals(true, fieldDescriptor.isPacked());
- assertEquals(
- goog.proto2.FieldDescriptor.FieldType.INT32,
- fieldDescriptor.getFieldType());
- assertEquals(Number, fieldDescriptor.getNativeType());
- assertEquals(0, fieldDescriptor.getDefaultValue());
- }
- function testGetDefaultValueOfString() {
- var fieldDescriptor = new goog.proto2.FieldDescriptor({}, 10, {
- name: 'test',
- fieldType: goog.proto2.FieldDescriptor.FieldType.STRING,
- type: String
- });
- assertEquals('', fieldDescriptor.getDefaultValue());
- }
- function testGetDefaultValueOfBool() {
- var fieldDescriptor = new goog.proto2.FieldDescriptor({}, 10, {
- name: 'test',
- fieldType: goog.proto2.FieldDescriptor.FieldType.BOOL,
- type: Boolean
- });
- assertEquals(false, fieldDescriptor.getDefaultValue());
- }
- function testGetDefaultValueOfInt64() {
- var fieldDescriptor = new goog.proto2.FieldDescriptor({}, 10, {
- name: 'test',
- fieldType: goog.proto2.FieldDescriptor.FieldType.INT64,
- type: String
- });
- assertEquals('0', fieldDescriptor.getDefaultValue());
- }
- function testRepeatedField() {
- var messageType = {};
- var fieldDescriptor = new goog.proto2.FieldDescriptor(
- messageType, 10,
- {name: 'test', repeated: true, fieldType: 7, type: Number});
- assertEquals(true, fieldDescriptor.isRepeated());
- assertEquals(false, fieldDescriptor.isRequired());
- assertEquals(false, fieldDescriptor.isOptional());
- }
- function testRequiredField() {
- var messageType = {};
- var fieldDescriptor = new goog.proto2.FieldDescriptor(
- messageType, 10,
- {name: 'test', required: true, fieldType: 7, type: Number});
- assertEquals(false, fieldDescriptor.isRepeated());
- assertEquals(true, fieldDescriptor.isRequired());
- assertEquals(false, fieldDescriptor.isOptional());
- }
- function testOptionalField() {
- var messageType = {};
- var fieldDescriptor = new goog.proto2.FieldDescriptor(
- messageType, 10, {name: 'test', fieldType: 7, type: Number});
- assertEquals(false, fieldDescriptor.isRepeated());
- assertEquals(false, fieldDescriptor.isRequired());
- assertEquals(true, fieldDescriptor.isOptional());
- }
- function testContaingType() {
- var MessageType = function() { MessageType.base(this, 'constructor'); };
- goog.inherits(MessageType, goog.proto2.Message);
- MessageType.getDescriptor = function() {
- if (!MessageType.descriptor_) {
- // The descriptor is created lazily when we instantiate a new instance.
- var descriptorObj = {
- 0: {name: 'test_message', fullName: 'this.is.a.test_message'},
- 10: {name: 'test', fieldType: 7, type: Number}
- };
- MessageType.descriptor_ =
- goog.proto2.Message.createDescriptor(MessageType, descriptorObj);
- }
- return MessageType.descriptor_;
- };
- MessageType.prototype.getDescriptor = MessageType.getDescriptor;
- var descriptor = MessageType.getDescriptor();
- var fieldDescriptor = descriptor.getFields()[0];
- assertEquals('10', fieldDescriptor.getTag());
- assertEquals(descriptor, fieldDescriptor.getContainingType());
- }
|