Files
sdk/tests/lib/convert/chunked_conversion2_test.dart
T
Robert Nystrom b05a57d5f3 Migrate tests/lib_2/convert -> tests/lib/convert.
Change-Id: I04e64359acb95c63d1b5dc5c7fdfaadcb6c55fd9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130965
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2020-01-16 17:46:02 +00:00

55 lines
1.3 KiB
Dart

// Copyright (c) 2013, 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:convert';
import 'package:expect/expect.dart';
// Test that the String and ByteConversionSinks make a copy when they need to
// adapt.
class MyByteSink extends ByteConversionSinkBase {
var accumulator = [];
add(List<int> bytes) {
accumulator.add(bytes);
}
close() {}
}
void testBase() {
var byteSink = new MyByteSink();
var bytes = [1];
byteSink.addSlice(bytes, 0, 1, false);
bytes[0] = 2;
byteSink.addSlice(bytes, 0, 1, true);
Expect.equals(1, byteSink.accumulator[0][0]);
Expect.equals(2, byteSink.accumulator[1][0]);
}
class MyChunkedSink extends ChunkedConversionSink<List<int>> {
var accumulator = [];
add(List<int> bytes) {
accumulator.add(bytes);
}
close() {}
}
void testAdapter() {
var chunkedSink = new MyChunkedSink();
var byteSink = new ByteConversionSink.from(chunkedSink);
var bytes = [1];
byteSink.addSlice(bytes, 0, 1, false);
bytes[0] = 2;
byteSink.addSlice(bytes, 0, 1, true);
Expect.equals(1, chunkedSink.accumulator[0][0]);
Expect.equals(2, chunkedSink.accumulator[1][0]);
}
void main() {
testBase();
testAdapter();
}