Index: pkg/scheduled_test/test/scheduled_process_test.dart |
diff --git a/pkg/scheduled_test/test/scheduled_process_test.dart b/pkg/scheduled_test/test/scheduled_process_test.dart |
index 8ff153342eee65f435d96b5875d2df6e86b273fc..f7493d0ef55d9ea304c183965889f05457cc840d 100644 |
--- a/pkg/scheduled_test/test/scheduled_process_test.dart |
+++ b/pkg/scheduled_test/test/scheduled_process_test.dart |
@@ -9,6 +9,7 @@ import 'dart:io'; |
import 'package:path/path.dart' as path; |
import 'package:scheduled_test/scheduled_process.dart'; |
+import 'package:scheduled_test/scheduled_stream.dart'; |
import 'package:scheduled_test/scheduled_test.dart'; |
import 'metatest.dart'; |
@@ -128,16 +129,19 @@ void main(_, message) { |
}); |
var process = startDartProcess(''); |
- expect(process.nextLine(), completion(equals('hello'))); |
- expect(process.nextLine(), completion(equals('world'))); |
+ process.stdout.expect('hello'); |
+ process.stdout.expect('world'); |
process.shouldExit(0); |
}); |
test('test 2', () { |
expect(errors, everyElement(new isInstanceOf<ScheduleError>())); |
expect(errors.length, anyOf(1, 2)); |
- expect(errors[0].error, isStateError); |
- expect(errors[0].error.message, equals("No elements")); |
+ expect(errors[0].error, new isInstanceOf<TestFailure>()); |
+ expect(errors[0].error.message, equals( |
+ "Expected: 'hello'\n" |
+ " Emitted: \n" |
+ " Which: unexpected end of stream")); |
// Whether or not this error appears depends on how quickly the "no |
// elements" error is handled. |
@@ -161,171 +165,29 @@ void main(_, message) { |
}); |
}); |
- expectTestsPass("nextLine returns the next line of stdout from the process", |
- () { |
+ expectTestsPass("stdout exposes the standard output from the process", () { |
test('test', () { |
var process = startDartProcess(r'print("hello\n\nworld"); print("hi");'); |
- expect(process.nextLine(), completion(equals('hello'))); |
- expect(process.nextLine(), completion(equals(''))); |
- expect(process.nextLine(), completion(equals('world'))); |
- expect(process.nextLine(), completion(equals('hi'))); |
+ process.stdout.expect('hello'); |
+ process.stdout.expect(''); |
+ process.stdout.expect('world'); |
+ process.stdout.expect('hi'); |
+ process.stdout.expect(isDone); |
process.shouldExit(0); |
}); |
}); |
- expectTestsPass("nextLine throws an error if there's no more stdout", () { |
- var errors; |
- test('test 1', () { |
- currentSchedule.onException.schedule(() { |
- errors = currentSchedule.errors; |
- }); |
- |
- var process = startDartProcess('print("hello");'); |
- expect(process.nextLine(), completion(equals('hello'))); |
- expect(process.nextLine(), completion(equals('world'))); |
- process.shouldExit(0); |
- }); |
- |
- test('test 2', () { |
- expect(errors, everyElement(new isInstanceOf<ScheduleError>())); |
- expect(errors.length, anyOf(1, 2)); |
- expect(errors[0].error, isStateError); |
- expect(errors[0].error.message, equals("No elements")); |
- |
- // Whether or not this error appears depends on how quickly the "no |
- // elements" error is handled. |
- if (errors.length == 2) { |
- expect(errors[1].error.toString(), matches(r"^Process " |
- r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with " |
- r"exit code 0\.")); |
- } |
- }); |
- }, passing: ['test 2']); |
- |
- expectTestsPass("nextErrLine returns the next line of stderr from the " |
- "process", () { |
+ expectTestsPass("stderr exposes the stderr from the process", () { |
test('test', () { |
var process = startDartProcess(r''' |
stderr.write("hello\n\nworld\n"); |
stderr.write("hi"); |
'''); |
- expect(process.nextErrLine(), completion(equals('hello'))); |
- expect(process.nextErrLine(), completion(equals(''))); |
- expect(process.nextErrLine(), completion(equals('world'))); |
- expect(process.nextErrLine(), completion(equals('hi'))); |
- process.shouldExit(0); |
- }); |
- }); |
- |
- expectTestsPass("nextErrLine throws an error if there's no more stderr", () { |
- var errors; |
- test('test 1', () { |
- currentSchedule.onException.schedule(() { |
- errors = currentSchedule.errors; |
- }); |
- |
- var process = startDartProcess(r'stderr.write("hello\n");'); |
- expect(process.nextErrLine(), completion(equals('hello'))); |
- expect(process.nextErrLine(), completion(equals('world'))); |
- process.shouldExit(0); |
- }); |
- |
- test('test 2', () { |
- expect(errors, everyElement(new isInstanceOf<ScheduleError>())); |
- expect(errors.length, anyOf(1, 2)); |
- expect(errors[0].error, isStateError); |
- expect(errors[0].error.message, equals("No elements")); |
- |
- // Whether or not this error appears depends on how quickly the "no |
- // elements" error is handled. |
- if (errors.length == 2) { |
- expect(errors[1].error.toString(), matches(r"^Process " |
- r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with " |
- r"exit code 0\.")); |
- } |
- }); |
- }, passing: ['test 2']); |
- |
- expectTestsPass("remainingStdout returns all the stdout if it's not consumed " |
- "any other way", () { |
- test('test', () { |
- var process = startDartProcess(r'print("hello\n\nworld"); print("hi");'); |
- process.shouldExit(0); |
- expect(process.remainingStdout(), |
- completion(equals("hello\n\nworld\nhi"))); |
- }); |
- }); |
- |
- expectTestsPass("remainingStdout returns the empty string if there's no " |
- "stdout", () { |
- test('test', () { |
- var process = startDartProcess(r''); |
- process.shouldExit(0); |
- expect(process.remainingStdout(), completion(isEmpty)); |
- }); |
- }); |
- |
- expectTestsPass("remainingStdout returns the remaining stdout after the " |
- "lines consumed by nextLine", () { |
- test('test', () { |
- var process = startDartProcess(r'print("hello\n\nworld"); print("hi");'); |
- expect(process.nextLine(), completion(equals("hello"))); |
- expect(process.nextLine(), completion(equals(""))); |
- process.shouldExit(0); |
- expect(process.remainingStdout(), completion(equals("world\nhi"))); |
- }); |
- }); |
- |
- expectTestsPass("remainingStdout can't be called before the process is " |
- "scheduled to end", () { |
- test('test', () { |
- var process = startDartProcess(r''); |
- expect(process.remainingStdout, throwsA(isStateError)); |
- process.shouldExit(0); |
- }); |
- }); |
- |
- expectTestsPass("remainingStderr returns all the stderr if it's not consumed " |
- "any other way", () { |
- test('test', () { |
- var process = startDartProcess(r''' |
- stderr.write("hello\n\nworld\n"); |
- stderr.write("hi\n"); |
- '''); |
- process.shouldExit(0); |
- expect(process.remainingStderr(), |
- completion(equals("hello\n\nworld\nhi"))); |
- }); |
- }); |
- |
- expectTestsPass("remainingStderr returns the empty string if there's no " |
- "stderr", () { |
- test('test', () { |
- var process = startDartProcess(r''); |
- process.shouldExit(0); |
- expect(process.remainingStderr(), completion(isEmpty)); |
- }); |
- }); |
- |
- expectTestsPass("remainingStderr returns the remaining stderr after the " |
- "lines consumed by nextLine", () { |
- test('test', () { |
- var process = startDartProcess(r''' |
- stderr.write("hello\n\nworld\n"); |
- stderr.write("hi\n"); |
- '''); |
- expect(process.nextErrLine(), completion(equals("hello"))); |
- expect(process.nextErrLine(), completion(equals(""))); |
- process.shouldExit(0); |
- expect(process.remainingStderr(), completion(equals("world\nhi"))); |
- }); |
- }); |
- |
- expectTestsPass("remainingStderr can't be called before the process is " |
- "scheduled to end", () { |
- test('test', () { |
- var process = startDartProcess(r''); |
- expect(process.remainingStderr, throwsA(isStateError)); |
+ process.stderr.expect('hello'); |
+ process.stderr.expect(''); |
+ process.stderr.expect('world'); |
+ process.stderr.expect('hi'); |
+ process.stderr.expect(isDone); |
process.shouldExit(0); |
}); |
}); |
@@ -337,9 +199,9 @@ void main(_, message) { |
stdinLines.listen((line) => print("> $line")); |
'''); |
process.writeLine("hello"); |
- expect(process.nextLine(), completion(equals("> hello"))); |
+ process.stdout.expect("> hello"); |
process.writeLine("world"); |
- expect(process.nextLine(), completion(equals("> world"))); |
+ process.stdout.expect("> world"); |
process.kill(); |
}); |
}); |
@@ -352,7 +214,7 @@ void main(_, message) { |
'''); |
process.closeStdin(); |
process.shouldExit(0); |
- expect(process.nextLine(), completion(equals('stdin closed'))); |
+ process.stdout.expect('stdin closed'); |
}); |
}); |
} |