Selaa lähdekoodia

Project import generated by Copybara

PiperOrigin-RevId: 297709554
Rafi Kamal 5 vuotta sitten
vanhempi
commit
9bbc664671
1 muutettua tiedostoa jossa 23 lisäystä ja 0 poistoa
  1. 23 0
      js/experimental/runtime/kernel/lazy_accessor_test.js

+ 23 - 0
js/experimental/runtime/kernel/lazy_accessor_test.js

@@ -30,6 +30,15 @@ describe('LazyAccessor', () => {
     expect(accessor.serialize()).toEqual(new ArrayBuffer(0));
     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', () => {
   it('uses the default pivot point', () => {
     const accessor = LazyAccessor.fromArrayBuffer(new ArrayBuffer(0));
     const accessor = LazyAccessor.fromArrayBuffer(new ArrayBuffer(0));
     expect(accessor.getPivot()).toBe(24);
     expect(accessor.getPivot()).toBe(24);
@@ -147,17 +156,31 @@ describe('LazyAccessor clear field does', () => {
     expect(clonedAccessor.serialize()).toEqual(new ArrayBuffer(0));
     expect(clonedAccessor.serialize()).toEqual(new ArrayBuffer(0));
     expect(clonedAccessor.getBoolWithDefault(1)).toEqual(false);
     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', () => {
 describe('LazyAccessor shallow copy does', () => {
   it('work for singular fields', () => {
   it('work for singular fields', () => {
     const accessor = LazyAccessor.createEmpty();
     const accessor = LazyAccessor.createEmpty();
     accessor.setBool(1, true);
     accessor.setBool(1, true);
+    accessor.setBool(MAX_FIELD_NUMBER, true);
     const clonedAccessor = accessor.shallowCopy();
     const clonedAccessor = accessor.shallowCopy();
     expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
     expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
+    expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true);
 
 
     accessor.setBool(1, false);
     accessor.setBool(1, false);
+    accessor.setBool(MAX_FIELD_NUMBER, false);
     expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
     expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true);
+    expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true);
   });
   });
 
 
   it('work for repeated fields', () => {
   it('work for repeated fields', () => {