@@ -14,38 +14,37 @@ import ReactiveTask
1414
1515class TaskSpec : QuickSpec {
1616 override func spec( ) {
17- let standardOutput = ObservableProperty ( NSData ( ) )
18- let standardError = ObservableProperty ( NSData ( ) )
17+ let standardOutput = MutableProperty ( NSData ( ) )
18+ let standardError = MutableProperty ( NSData ( ) )
1919
2020 beforeEach {
2121 standardOutput. value = NSData ( )
2222 standardError. value = NSData ( )
2323 }
2424
25- func accumulatingSinkForProperty( property: ObservableProperty < NSData > ) -> SinkOf < NSData > {
26- let ( signal, sink) = HotSignal < NSData> . pipe( )
25+ func accumulatingSinkForProperty( property: MutableProperty < NSData > ) -> SinkOf < NSData > {
26+ let ( signal, sink) = Signal < NSData , NoError > . pipe ( )
2727
28- signal. scan ( initial: NSData ( ) ) { ( accum, data) in
29- let buffer = accum. mutableCopy ( ) as NSMutableData
30- buffer. appendData ( data)
28+ property <~ signal
29+ |> scan ( NSData ( ) ) { ( accum, data) in
30+ let buffer = accum. mutableCopy ( ) as NSMutableData
31+ buffer. appendData ( data)
3132
32- return buffer
33- // FIXME: This doesn't actually need to be cold, it just works
34- // around memory management issues.
35- } . replay ( 0 ) . start ( next: { value in
36- property. value = value
37- } )
33+ return buffer
34+ }
3835
39- return sink
36+ return SinkOf { data in
37+ sendNext ( sink, data)
38+ }
4039 }
4140
4241 it ( " should launch a task that writes to stdout " ) {
4342 let desc = TaskDescription ( launchPath: " /bin/echo " , arguments: [ " foobar " ] )
4443 let task = launchTask ( desc, standardOutput: accumulatingSinkForProperty ( standardOutput) )
4544 expect ( standardOutput. value) . to ( equal ( NSData ( ) ) )
4645
47- let result = task. wait ( )
48- expect ( result. isSuccess ( ) ) . to ( beTruthy ( ) )
46+ let result = task |> wait
47+ expect ( result. isSuccess) . to ( beTruthy ( ) )
4948 expect ( NSString ( data: standardOutput. value, encoding: NSUTF8StringEncoding) ) . to ( equal ( " foobar \n " ) )
5049 }
5150
@@ -54,20 +53,20 @@ class TaskSpec: QuickSpec {
5453 let task = launchTask ( desc, standardError: accumulatingSinkForProperty ( standardError) )
5554 expect ( standardError. value) . to ( equal ( NSData ( ) ) )
5655
57- let result = task. wait ( )
58- expect ( result. isSuccess ( ) ) . to ( beFalsy ( ) )
56+ let result = task |> wait
57+ expect ( result. isSuccess) . to ( beFalsy ( ) )
5958 expect ( NSString ( data: standardError. value, encoding: NSUTF8StringEncoding) ) . to ( equal ( " stat: not-a-real-file: stat: No such file or directory \n " ) )
6059 }
6160
6261 it ( " should launch a task with standard input " ) {
6362 let strings = [ " foo \n " , " bar \n " , " buzz \n " , " fuzz \n " ]
6463 let data = strings. map { $0. dataUsingEncoding ( NSUTF8StringEncoding) ! }
6564
66- let desc = TaskDescription ( launchPath: " /usr/bin/sort " , standardInput: ColdSignal . fromValues ( data) )
65+ let desc = TaskDescription ( launchPath: " /usr/bin/sort " , standardInput: SignalProducer ( values : data) )
6766 let task = launchTask ( desc, standardOutput: accumulatingSinkForProperty ( standardOutput) )
6867
69- let result = task. wait ( )
70- expect ( result. isSuccess ( ) ) . to ( beTruthy ( ) )
68+ let result = task |> wait
69+ expect ( result. isSuccess) . to ( beTruthy ( ) )
7170 expect ( NSString ( data: standardOutput. value, encoding: NSUTF8StringEncoding) ) . to ( equal ( " bar \n buzz \n foo \n fuzz \n " ) )
7271 }
7372 }
0 commit comments