base_utils_test.dart 1.11 KB
Newer Older
1 2 3 4 5 6 7 8 9
// Copyright 2016 The Chromium 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:async';

import 'package:flutter_tools/src/base/utils.dart';
import 'package:test/test.dart';

10
void main() {
11 12
  group('ItemListNotifier', () {
    test('sends notifications', () async {
13
      final ItemListNotifier<String> list = new ItemListNotifier<String>();
14 15
      expect(list.items, isEmpty);

16 17
      final Future<List<String>> addedStreamItems = list.onAdded.toList();
      final Future<List<String>> removedStreamItems = list.onRemoved.toList();
18 19 20 21 22 23

      list.updateWithNewList(<String>['aaa']);
      list.updateWithNewList(<String>['aaa', 'bbb']);
      list.updateWithNewList(<String>['bbb']);
      list.dispose();

24 25
      final List<String> addedItems = await addedStreamItems;
      final List<String> removedItems = await removedStreamItems;
26 27 28 29 30 31 32 33 34 35

      expect(addedItems.length, 2);
      expect(addedItems.first, 'aaa');
      expect(addedItems[1], 'bbb');

      expect(removedItems.length, 1);
      expect(removedItems.first, 'aaa');
    });
  });
}