blob: fd7324d5fdd259b02041595760f71ca73e59ec0a [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'gen/custom_option.pb.dart';
import 'gen/import_option.pbjson.dart';
import 'package:fixnum/fixnum.dart';
import 'package:protobuf/protobuf.dart';
import 'package:protoc_plugin/src/gen/google/protobuf/descriptor.pb.dart';
import 'package:test/test.dart';
void main() {
test('can read custom options from linked import option', () {
final registry = ExtensionRegistry()..add(Custom_option.myOption);
final descriptor = DescriptorProto.fromBuffer(
messageWithOptionsDescriptor,
registry,
);
final option = descriptor.options.getExtension(Custom_option.myOption);
expect(option, 'Hello world!');
});
test('unlinked options are in unknown fields', () {
final registry = ExtensionRegistry()..add(Custom_option.myOption);
final descriptor = DescriptorProto.fromBuffer(
messageWithOptionsDescriptor,
registry,
);
final ufs = descriptor.options.unknownFields;
expect(ufs.hasField(51235), true);
expect(ufs.getField(51235)!.varints.length, 1);
expect(ufs.getField(51235)!.varints.first, Int64(99));
});
}