Skip to content

Commit

Permalink
Merge pull request #24 from LoveCommunity/feature/subject
Browse files Browse the repository at this point in the history
add `Subject` interface
  • Loading branch information
beeth0ven committed Jun 4, 2022
2 parents 77eb4a1 + f66ec52 commit 8bf76db
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/src/observables/observables.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ export 'package:disposal/disposal.dart' show Disposable;
export 'observables/observable.dart';
export 'observables/proxy_observable.dart';
export 'observers/observer.dart';
export 'subjects/subject.dart';
6 changes: 6 additions & 0 deletions lib/src/observables/subjects/subject.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

import 'package:disposal/disposal.dart';
import '../observables/observable.dart';
import '../observers/observer.dart';

abstract class Subject<T> implements Observable<T>, Observer<T>, Disposable {}
2 changes: 2 additions & 0 deletions test/observables/observables_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'observables/proxy_observable_test.dart' as proxy_observable_test;
import 'observables/skip_observable_test.dart' as skip_observable_test;
import 'observables/where_observable_test.dart' as where_observable_test;
import 'observers/observer_test.dart' as observer_test;
import 'subjects/subject_test.dart' as subject_test;


void main() {
Expand All @@ -22,4 +23,5 @@ void main() {
skip_observable_test.main();
where_observable_test.main();
observer_test.main();
subject_test.main();
}
32 changes: 32 additions & 0 deletions test/observables/subjects/subject_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

import 'package:test/test.dart';
import 'package:scopes/scopes.dart';

void main() {

test('subject is observable, observer and disposable', () {
final subject = _MockSubject<String>();
expect(subject, isA<Observable<String>>());
expect(subject, isA<Observer<String>>());
expect(subject, isA<Disposable>());
});

}

class _MockSubject<T> implements Subject<T> {

@override
Disposable observe(OnData<T> onData) {
throw UnimplementedError();
}

@override
void onData(T data) {
throw UnimplementedError();
}

@override
void dispose() {
throw UnimplementedError();
}
}

0 comments on commit 8bf76db

Please sign in to comment.