// Copyright (c) 2017, 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.

// @dart = 2.9

/// @assertion class WebSocket
/// A two-way HTTP communication object for client or server applications.
/// The stream exposes the messages received. A text message will be of
/// type String and a binary message will be of type List<int>.
/// @description Aggregates tests for Stream interface
/// @author a.semenov@unipro.ru

library allTests_A01;

import "last_A01_t01.test.dart" as last_A01_t01;
import "last_A02_t01.test.dart" as last_A02_t01;

import "length_A01_t01.test.dart" as length_A01_t01;

void test(var create) {
  last_A01_t01.test(create);
  last_A02_t01.test(create);
  length_A01_t01.test(create);
}
