| // Copyright 2018 The Fuchsia Authors. 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:typed_data'; |
| import 'package:test/test.dart'; |
| import 'package:fidl_fidl_examples_bindingstest/fidl_async.dart'; |
| |
| import './server.dart'; |
| |
| void main() async { |
| TestServerInstance server; |
| |
| group('events', () { |
| setUpAll(() async { |
| server = TestServerInstance(); |
| await server.start(); |
| }); |
| |
| tearDownAll(() async { |
| await server.stop(); |
| server = null; |
| }); |
| |
| test('empty', () async { |
| await server.proxy.sendEmptyEvent(); |
| expect(server.proxy.emptyEvent.first, completes); |
| }); |
| |
| test('string arg', () async { |
| await server.proxy.sendStringEvent('Hello, world'); |
| expect( |
| server.proxy.stringEvent.first, completion(equals('Hello, world'))); |
| }); |
| |
| test('three args', () async { |
| final primes = |
| Uint8List.fromList([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]); |
| await server.proxy.sendThreeArgEvent( |
| 23, 42, NoHandleStruct(foo: 'hello', bar: 1729, baz: primes)); |
| final threeReply = await server.proxy.threeArgEvent.first; |
| expect(threeReply.x, equals(23)); |
| expect(threeReply.y, equals(42)); |
| expect(threeReply.z.foo, equals('hello')); |
| expect(threeReply.z.bar, equals(1729)); |
| expect(threeReply.z.baz, unorderedEquals(primes)); |
| }); |
| |
| test('multiple events', () async { |
| expect(server.proxy.multipleEvent, emitsInOrder([1, 2, 3, 4, 5])); |
| await server.proxy.sendMultipleEvents(5, 0.02); |
| }); |
| }); |
| } |