Added mock

This commit is contained in:
thosakwe 2017-03-25 00:28:50 -04:00
parent 16f0ad0db6
commit e2ab72ba96
4 changed files with 31 additions and 2 deletions

View file

@ -1,4 +1,5 @@
# angel_test
[![version 1.0.1](https://img.shields.io/badge/pub-1.0.1-brightgreen.svg)](https://pub.dartlang.org/packages/angel_test)
[![build status](https://travis-ci.org/angel-dart/test.svg?branch=master)](https://travis-ci.org/angel-dart/test)
Testing utility library for the Angel framework.

View file

@ -44,11 +44,33 @@ Future<TestClient> connectTo(Angel app,
}
Future<MockHttpResponse> mock(Angel app, String method, Uri uri,
{Iterable<Cookie> cookies: const [],
{body,
Iterable<Cookie> cookies: const [],
Map<String, dynamic> headers: const {}}) async {
var rq = new MockHttpRequest(method, uri);
rq.cookies.addAll(cookies ?? []);
headers.forEach(rq.headers.add);
if (body is! Map) {
rq.write(body);
} else if (rq.headers.contentType == null ||
rq.headers.contentType.mimeType == ContentType.JSON.mimeType) {
rq
..headers.contentType = ContentType.JSON
..write(JSON.encode(body));
} else if (rq.headers.contentType.mimeType ==
'application/x-www-form-urlencoded') {
rq
..headers.contentType =
new ContentType('application', 'x-www-form-urlencoded')
..write(body.keys.fold<List<String>>(
[],
(out, k) =>
out..add('$k=' + Uri.encodeComponent(body[k]))).join('&'));
} else
throw new UnsupportedError(
'mock() only supports sending JSON or URL-encoded bodies.');
await rq.close();
await app.handleRequest(rq);
return rq.response;

View file

@ -2,7 +2,7 @@ author: "Tobe O <thosakwe@gmail.com>"
description: "Testing utility library for the Angel framework."
homepage: "https://github.com/angel-dart/test.git"
name: "angel_test"
version: "1.0.0"
version: "1.0.1"
dependencies:
angel_client: "^1.0.0-dev+16"
angel_framework: "^1.0.0-dev"

View file

@ -1,3 +1,4 @@
import 'dart:convert';
import 'package:angel_framework/angel_framework.dart' as server;
import 'package:angel_test/angel_test.dart';
import 'package:test/test.dart';
@ -21,6 +22,11 @@ main() {
app = null;
});
test('mock()', () async {
var response = await mock(app, 'GET', Uri.parse('/hello'));
expect(await response.transform(UTF8.decoder).join(), equals('"Hello"'));
});
group('isJson+hasStatus', () {
test('get', () async {
final response = await testClient.get('/hello');