70 lines
2.3 KiB
Dart
70 lines
2.3 KiB
Dart
import 'package:platform_core/core.dart';
|
|
import 'dart:convert';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
test('named constructors', () {
|
|
expect(PlatformHttpException.badRequest(),
|
|
isException(400, '400 Bad Request'));
|
|
expect(PlatformHttpException.notAuthenticated(),
|
|
isException(401, '401 Not Authenticated'));
|
|
expect(PlatformHttpException.paymentRequired(),
|
|
isException(402, '402 Payment Required'));
|
|
expect(
|
|
PlatformHttpException.forbidden(), isException(403, '403 Forbidden'));
|
|
expect(PlatformHttpException.notFound(), isException(404, '404 Not Found'));
|
|
expect(PlatformHttpException.methodNotAllowed(),
|
|
isException(405, '405 Method Not Allowed'));
|
|
expect(PlatformHttpException.notAcceptable(),
|
|
isException(406, '406 Not Acceptable'));
|
|
expect(
|
|
PlatformHttpException.methodTimeout(), isException(408, '408 Timeout'));
|
|
expect(PlatformHttpException.conflict(), isException(409, '409 Conflict'));
|
|
expect(PlatformHttpException.notProcessable(),
|
|
isException(422, '422 Not Processable'));
|
|
expect(PlatformHttpException.notImplemented(),
|
|
isException(501, '501 Not Implemented'));
|
|
expect(PlatformHttpException.unavailable(),
|
|
isException(503, '503 Unavailable'));
|
|
});
|
|
|
|
test('fromMap', () {
|
|
expect(PlatformHttpException.fromMap({'status_code': -1, 'message': 'ok'}),
|
|
isException(-1, 'ok'));
|
|
});
|
|
|
|
test('toMap = toJson', () {
|
|
var exc = PlatformHttpException.badRequest();
|
|
expect(exc.toMap(), exc.toJson());
|
|
var json_ = json.encode(exc.toJson());
|
|
var exc2 = PlatformHttpException.fromJson(json_);
|
|
expect(exc2.toJson(), exc.toJson());
|
|
});
|
|
|
|
test('toString', () {
|
|
expect(
|
|
PlatformHttpException(statusCode: 420, message: 'Blaze It').toString(),
|
|
'420: Blaze It');
|
|
});
|
|
}
|
|
|
|
Matcher isException(int statusCode, String message) =>
|
|
_IsException(statusCode, message);
|
|
|
|
class _IsException extends Matcher {
|
|
final int statusCode;
|
|
final String message;
|
|
|
|
_IsException(this.statusCode, this.message);
|
|
|
|
@override
|
|
Description describe(Description description) =>
|
|
description.add('has status code $statusCode and message "$message"');
|
|
|
|
@override
|
|
bool matches(item, Map matchState) {
|
|
return item is PlatformHttpException &&
|
|
item.statusCode == statusCode &&
|
|
item.message == message;
|
|
}
|
|
}
|