// 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.

/// @assertion abstract class ChunkedConversionSink<T>
/// @description Checks all methods of [ChunkedConversionSink]
/// @Issue 29329
/// @author sgrekhov@unipro.ru

library allTests_A01_t01;

import "dart:convert";

import "add_A01_t01.test.dart" as add_A01_t01;
import "add_A01_t02.test.dart" as add_A01_t02;
import "close_A01_t01.test.dart" as close_A01_t01;

test(ChunkedConversionSink create(ChunkedConversionSink<List<int>> outSink)) {
  add_A01_t01.test(create);
  add_A01_t02.test(create);
  close_A01_t01.test(create); //issue 29329
}
