blob: 92537a7053b31d137806b2c4858673480a4352cb [file] [log] [blame]
// Basic smoke tests for the GeneratedMessage JSON API.
//
// There are more JSON tests in the dart-protoc-plugin package.
library json_test;
import 'dart:convert';
import 'package:protobuf/protobuf.dart';
import 'package:unittest/unittest.dart';
main() {
T example = new T()
..a = 123
..b = "hello";
test('testWriteToJson', () {
String json = example.writeToJson();
checkJsonMap(JSON.decode(json));
});
test('writeToJsonMap', () {
Map m = example.writeToJsonMap();
checkJsonMap(m);
});
test('testMergeFromJson', () {
var t = new T();
t.mergeFromJson('''{"1": 123, "2": "hello"}''');
checkMessage(t);
});
test('testMergeFromJsonMap', () {
var t = new T();
t.mergeFromJsonMap({"1": 123, "2": "hello"});
checkMessage(t);
});
}
checkJsonMap(Map m) {
expect(m.length, 2);
expect(m["1"], 123);
expect(m["2"], "hello");
}
checkMessage(T t) {
expect(t.a, 123);
expect(t.b, "hello");
}
/// This is generated code based on:
/// dart-protoc-plugin/test/protos/toplevel.proto
/// (Copied to avoid a circular dependency.)
///
/// message T {
/// optional int32 a = 1;
/// optional string b = 2;
/// }
class T extends GeneratedMessage {
static final BuilderInfo _i = new BuilderInfo('T')
..a(1, 'a', GeneratedMessage.O3)
..a(2, 'b', GeneratedMessage.OS)
..hasRequiredFields = false;
T() : super();
T.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY])
: super.fromBuffer(i, r);
T.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY])
: super.fromJson(i, r);
T clone() => new T()..mergeFromMessage(this);
BuilderInfo get info_ => _i;
static T create() => new T();
static PbList<T> createRepeated() => new PbList<T>();
int get a => getField(1);
void set a(int v) {
setField(1, v);
}
bool hasA() => hasField(1);
void clearA() => clearField(1);
String get b => getField(2);
void set b(String v) {
setField(2, v);
}
bool hasB() => hasField(2);
void clearB() => clearField(2);
}