Skip to content
Snippets Groups Projects
Commit 232b6a8f authored by Jorge Canizales's avatar Jorge Canizales
Browse files

Test robustness of WriteableSingleHandler against non-single Writers

parent 180ca863
No related branches found
No related tags found
No related merge requests found
...@@ -64,6 +64,8 @@ ...@@ -64,6 +64,8 @@
} }
@end @end
// TODO(jcanizales): Split into one file per tested class.
@interface RxLibraryUnitTests : XCTestCase @interface RxLibraryUnitTests : XCTestCase
@end @end
...@@ -79,6 +81,7 @@ ...@@ -79,6 +81,7 @@
// If: // If:
id<GRXWriteable> writeable = [GRXWriteable writeableWithSingleHandler:handler.block]; id<GRXWriteable> writeable = [GRXWriteable writeableWithSingleHandler:handler.block];
[writeable writeValue:anyValue]; [writeable writeValue:anyValue];
[writeable writesFinishedWithError:nil];
// Then: // Then:
XCTAssertEqual(handler.timesCalled, 1); XCTAssertEqual(handler.timesCalled, 1);
...@@ -101,6 +104,54 @@ ...@@ -101,6 +104,54 @@
XCTAssertEqualObjects(handler.errorOrNil, anyError); XCTAssertEqualObjects(handler.errorOrNil, anyError);
} }
- (void)testWriteableSingleHandlerIsCalledOnlyOnce_ValueThenError {
// Given:
CapturingSingleValueHandler *handler = [CapturingSingleValueHandler handler];
id anyValue = @7;
NSError *anyError = [NSError errorWithDomain:@"domain" code:7 userInfo:nil];
// If:
id<GRXWriteable> writeable = [GRXWriteable writeableWithSingleHandler:handler.block];
[writeable writeValue:anyValue];
[writeable writesFinishedWithError:anyError];
// Then:
XCTAssertEqual(handler.timesCalled, 1);
XCTAssertEqualObjects(handler.value, anyValue);
XCTAssertEqualObjects(handler.errorOrNil, nil);
}
- (void)testWriteableSingleHandlerIsCalledOnlyOnce_ValueThenValue {
// Given:
CapturingSingleValueHandler *handler = [CapturingSingleValueHandler handler];
id anyValue = @7;
// If:
id<GRXWriteable> writeable = [GRXWriteable writeableWithSingleHandler:handler.block];
[writeable writeValue:anyValue];
[writeable writeValue:anyValue];
[writeable writesFinishedWithError:nil];
// Then:
XCTAssertEqual(handler.timesCalled, 1);
XCTAssertEqualObjects(handler.value, anyValue);
XCTAssertEqualObjects(handler.errorOrNil, nil);
}
- (void)testWriteableSingleHandlerFailsOnEmptyWriter {
// Given:
CapturingSingleValueHandler *handler = [CapturingSingleValueHandler handler];
// If:
id<GRXWriteable> writeable = [GRXWriteable writeableWithSingleHandler:handler.block];
[writeable writesFinishedWithError:nil];
// Then:
XCTAssertEqual(handler.timesCalled, 1);
XCTAssertEqualObjects(handler.value, nil);
XCTAssertNotNil(handler.errorOrNil);
}
#pragma mark BufferedPipe #pragma mark BufferedPipe
- (void)testBufferedPipePropagatesValue { - (void)testBufferedPipePropagatesValue {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment