| Index: pkg/mdns/test/lookup_resolver_test.dart
|
| diff --git a/pkg/mdns/test/lookup_resolver_test.dart b/pkg/mdns/test/lookup_resolver_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2e9b6dbe37dadb7131e9ee9ba428d12ee41c5576
|
| --- /dev/null
|
| +++ b/pkg/mdns/test/lookup_resolver_test.dart
|
| @@ -0,0 +1,69 @@
|
| +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +import 'dart:io';
|
| +
|
| +import 'package:expect/expect.dart';
|
| +import 'package:mdns/src/packet.dart';
|
| +import 'package:mdns/src/lookup_resolver.dart';
|
| +
|
| +main() async {
|
| + await testTimeout();
|
| + await testResult();
|
| + await testResult2();
|
| + await testResult3();
|
| +}
|
| +
|
| +testTimeout() async {
|
| + var shortTimeout = new Duration(milliseconds: 1);
|
| + var resolver = new LookupResolver();
|
| + var result = await resolver.addPendingRequest('xxx', shortTimeout);
|
| + Expect.isNull(result);
|
| +}
|
| +
|
| +// One pending request and one response.
|
| +testResult() async {
|
| + var noTimeout = new Duration(days: 1);
|
| + var resolver = new LookupResolver();
|
| + var futureResult = resolver.addPendingRequest('xxx', noTimeout);
|
| + var response = new DecodeResult('xxx', new InternetAddress('1.2.3.4'));
|
| + resolver.handleResponse([response]);
|
| + var result = await futureResult;
|
| + Expect.equals('1.2.3.4', result.address);
|
| +}
|
| +
|
| +testResult2() async {
|
| + var noTimeout = new Duration(days: 1);
|
| + var resolver = new LookupResolver();
|
| + var futureResult1 = resolver.addPendingRequest('xxx', noTimeout);
|
| + var futureResult2 = resolver.addPendingRequest('yyy', noTimeout);
|
| + var response1 = new DecodeResult('xxx', new InternetAddress('1.2.3.4'));
|
| + var response2 = new DecodeResult('yyy', new InternetAddress('2.3.4.5'));
|
| + resolver.handleResponse([response2, response1]);
|
| + var result1 = await futureResult1;
|
| + var result2 = await futureResult2;
|
| + Expect.equals('1.2.3.4', result1.address);
|
| + Expect.equals('2.3.4.5', result2.address);
|
| +}
|
| +
|
| +testResult3() async {
|
| + var noTimeout = new Duration(days: 1);
|
| + var resolver = new LookupResolver();
|
| + var response0 = new DecodeResult('zzz', new InternetAddress('2.3.4.5'));
|
| + resolver.handleResponse([response0]);
|
| + var futureResult1 = resolver.addPendingRequest('xxx', noTimeout);
|
| + resolver.handleResponse([response0]);
|
| + var futureResult2 = resolver.addPendingRequest('yyy', noTimeout);
|
| + resolver.handleResponse([response0]);
|
| + var response1 = new DecodeResult('xxx', new InternetAddress('1.2.3.4'));
|
| + resolver.handleResponse([response0]);
|
| + var response2 = new DecodeResult('yyy', new InternetAddress('2.3.4.5'));
|
| + resolver.handleResponse([response0]);
|
| + resolver.handleResponse([response2, response1]);
|
| + resolver.handleResponse([response0]);
|
| + var result1 = await futureResult1;
|
| + var result2 = await futureResult2;
|
| + Expect.equals('1.2.3.4', result1.address);
|
| + Expect.equals('2.3.4.5', result2.address);
|
| +}
|
|
|