platform/graphql_schema/test/serialize_test.dart
2018-08-04 15:18:53 -04:00

61 lines
1.8 KiB
Dart

import 'package:graphql_schema/graphql_schema.dart';
import 'package:test/test.dart';
import 'common.dart';
main() {
test('scalar', () {
expect(graphQLString.serialize('a'), 'a');
var now = new DateTime.now();
expect(graphQLDate.serialize(now), now.toIso8601String());
});
test('list', () {
expect(listType(graphQLString).serialize(['foo', 'bar']), ['foo', 'bar']);
var today = new DateTime.now();
var tomorrow = today.add(new Duration(days: 1));
expect(listType(graphQLDate).serialize([today, tomorrow]),
[today.toIso8601String(), tomorrow.toIso8601String()]);
});
test('object', () {
var catchDate = new DateTime.now();
var pikachu = {'species': 'Pikachu', 'catch_date': catchDate};
expect(pokemonType.serialize(pikachu),
{'species': 'Pikachu', 'catch_date': catchDate.toIso8601String()});
});
test('nested object', () {
var pikachuDate = new DateTime.now(),
charizardDate = pikachuDate.subtract(new Duration(days: 10));
var pikachu = {'species': 'Pikachu', 'catch_date': pikachuDate};
var charizard = {'species': 'Charizard', 'catch_date': charizardDate};
var trainer = {'name': 'Tobe O'};
var region = pokemonRegionType.serialize({
'trainer': trainer,
'pokemon_species': [pikachu, charizard]
});
print(region);
expect(region, {
'trainer': trainer,
'pokemon_species': [
{'species': 'Pikachu', 'catch_date': pikachuDate.toIso8601String()},
{'species': 'Charizard', 'catch_date': charizardDate.toIso8601String()}
]
});
expect(
() => pokemonRegionType.serialize({
'trainer': trainer,
'DIGIMON_species': [pikachu, charizard]
}),
throwsUnsupportedError);
});
}