| // Copyright (c) 2012, 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 'package:pub/src/transcript.dart'; |
| import 'package:test/test.dart'; |
| |
| void main() { |
| test('discards from the middle once it reaches the maximum', () { |
| var transcript = Transcript<String>(4); |
| String forEachToString() { |
| var result = ''; |
| transcript.forEach((entry) => result += entry, (n) => result += '[$n]'); |
| return result; |
| } |
| |
| expect(forEachToString(), equals('')); |
| transcript.add('a'); |
| expect(forEachToString(), equals('a')); |
| transcript.add('b'); |
| expect(forEachToString(), equals('ab')); |
| transcript.add('c'); |
| expect(forEachToString(), equals('abc')); |
| transcript.add('d'); |
| expect(forEachToString(), equals('abcd')); |
| transcript.add('e'); |
| expect(forEachToString(), equals('ab[1]de')); |
| transcript.add('f'); |
| expect(forEachToString(), equals('ab[2]ef')); |
| }); |
| |
| test("does not discard if it doesn't reach the maximum", () { |
| var transcript = Transcript<String>(40); |
| String forEachToString() { |
| var result = ''; |
| transcript.forEach((entry) => result += entry, (n) => result += '[$n]'); |
| return result; |
| } |
| |
| expect(forEachToString(), equals('')); |
| transcript.add('a'); |
| expect(forEachToString(), equals('a')); |
| transcript.add('b'); |
| expect(forEachToString(), equals('ab')); |
| transcript.add('c'); |
| expect(forEachToString(), equals('abc')); |
| transcript.add('d'); |
| expect(forEachToString(), equals('abcd')); |
| transcript.add('e'); |
| expect(forEachToString(), equals('abcde')); |
| transcript.add('f'); |
| expect(forEachToString(), equals('abcdef')); |
| }); |
| } |