blob: ad5a47d98267b34e0423d2ab23f546e0ad82ba81 [file] [log] [blame]
// 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';
void main() {
group('ItemListNotifier', () {
test('sends notifications', () async {
ItemListNotifier<String> list = new ItemListNotifier<String>();
expect(list.items, isEmpty);
Future<List<String>> addedStreamItems = list.onAdded.toList();
Future<List<String>> removedStreamItems = list.onRemoved.toList();
list.updateWithNewList(<String>['aaa']);
list.updateWithNewList(<String>['aaa', 'bbb']);
list.updateWithNewList(<String>['bbb']);
list.dispose();
List<String> addedItems = await addedStreamItems;
List<String> removedItems = await removedStreamItems;
expect(addedItems.length, 2);
expect(addedItems.first, 'aaa');
expect(addedItems[1], 'bbb');
expect(removedItems.length, 1);
expect(removedItems.first, 'aaa');
});
});
}