Index: runtime/observatory/lib/src/mocks/repositories/notification.dart |
diff --git a/runtime/observatory/lib/src/mocks/repositories/notification.dart b/runtime/observatory/lib/src/mocks/repositories/notification.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cf7f2b9e4335f8271ec3259b4703f30e39dcedf7 |
--- /dev/null |
+++ b/runtime/observatory/lib/src/mocks/repositories/notification.dart |
@@ -0,0 +1,58 @@ |
+// Copyright (c) 2016, 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 |
+ |
+part of mocks; |
+ |
+class NotificationChangeEventMock implements M.NotificationChangeEvent { |
+ final NotificationRepositoryMock repository; |
+ const NotificationChangeEventMock({this.repository}); |
+} |
+ |
+typedef void NotificationRepositoryMockCallback(M.Notification notification); |
+ |
+class NotificationRepositoryMock implements M.NotificationRepository { |
+ final StreamController<M.NotificationChangeEvent> _onChange = |
+ new StreamController<M.NotificationChangeEvent>.broadcast(); |
+ Stream<M.NotificationChangeEvent> get onChange => _onChange.stream; |
+ |
+ bool get hasListeners => _onChange.hasListener; |
+ |
+ final Iterable<M.Notification> _list; |
+ final NotificationRepositoryMockCallback _add; |
+ final NotificationRepositoryMockCallback _delete; |
+ |
+ bool addInvoked = false; |
+ bool listInvoked = false; |
+ bool deleteInvoked = false; |
+ bool deleteAllInvoked = false; |
+ |
+ |
+ void add(M.Notification notification) { |
+ addInvoked = true; |
+ if (_add != null) _add(notification); |
+ } |
+ |
+ Iterable<M.Notification> list() { |
+ listInvoked = true; |
+ return _list; |
+ } |
+ |
+ void delete(M.Notification notification) { |
+ deleteInvoked = true; |
+ if (_add != null) _delete(notification); |
+ } |
+ |
+ void deleteAll() { deleteAllInvoked = true; } |
+ |
+ void triggerChangeEvent() { |
+ _onChange.add(new NotificationChangeEventMock(repository: this)); |
+ } |
+ |
+ NotificationRepositoryMock({Iterable<M.Notification> list : const [], |
+ NotificationRepositoryMockCallback add, |
+ NotificationRepositoryMockCallback delete}) |
+ : _list = list, |
+ _add = add, |
+ _delete = delete; |
+} |