|
@@ -30,6 +30,15 @@ describe('LazyAccessor', () => {
|
|
|
expect(accessor.serialize()).toEqual(new ArrayBuffer(0));
|
|
|
});
|
|
|
|
|
|
+ it('encodes and decodes max field number', () => {
|
|
|
+ const accessor = LazyAccessor.fromArrayBuffer(
|
|
|
+ createArrayBuffer(0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0x01));
|
|
|
+ expect(accessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toBe(true);
|
|
|
+ accessor.setBool(MAX_FIELD_NUMBER, false);
|
|
|
+ expect(accessor.serialize())
|
|
|
+ .toEqual(createArrayBuffer(0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0x00));
|
|
|
+ });
|
|
|
+
|
|
|
it('uses the default pivot point', () => {
|
|
|
const accessor = LazyAccessor.fromArrayBuffer(new ArrayBuffer(0));
|
|
|
expect(accessor.getPivot()).toBe(24);
|
|
@@ -147,17 +156,31 @@ describe('LazyAccessor clear field does', () => {
|
|
|
expect(clonedAccessor.serialize()).toEqual(new ArrayBuffer(0));
|
|
|
expect(clonedAccessor.getBoolWithDefault(1)).toEqual(false);
|
|
|
});
|
|
|
+
|
|
|
+ it('clear the max field number', () => {
|
|
|
+ const accessor = LazyAccessor.createEmpty();
|
|
|
+ accessor.setBool(MAX_FIELD_NUMBER, true);
|
|
|
+
|
|
|
+ accessor.clearField(MAX_FIELD_NUMBER);
|
|
|
+
|
|
|
+ expect(accessor.hasFieldNumber(MAX_FIELD_NUMBER)).toEqual(false);
|
|
|
+ expect(accessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(false);
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
describe('LazyAccessor shallow copy does', () => {
|
|
|
it('work for singular fields', () => {
|
|
|
const accessor = LazyAccessor.createEmpty();
|
|
|
accessor.setBool(1, true);
|
|
|
+ accessor.setBool(MAX_FIELD_NUMBER, true);
|
|
|
const clonedAccessor = accessor.shallowCopy();
|
|
|
expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
|
|
|
+ expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true);
|
|
|
|
|
|
accessor.setBool(1, false);
|
|
|
+ accessor.setBool(MAX_FIELD_NUMBER, false);
|
|
|
expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
|
|
|
+ expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true);
|
|
|
});
|
|
|
|
|
|
it('work for repeated fields', () => {
|