60 lines
1.7 KiB
Dart
60 lines
1.7 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);
|
||
|
});
|
||
|
}
|