Created
February 14, 2014 08:50
-
-
Save dodikk/8997822 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-(void)testLevelIsStoredAfterSuccessfullFetch | |
{ | |
__block SCLevelResponse* receivedResponse = nil; | |
__block NSError* receivedError = nil; | |
SCItemsFileManagerCallbacks* callbacks = [ SCItemsFileManagerCallbacks new ]; | |
{ | |
callbacks.onLevelLoadedBlock = ^void( SCLevelResponse* response, NSError* error ) | |
{ | |
receivedResponse = response; | |
receivedError = error ; | |
}; | |
} | |
LevelOperationFromRequestBuilder hookImpl = ^SCExtendedAsyncOp( SCItemsReaderRequest* request ) | |
{ | |
SCExtendedAsyncOp result = ^SCCancelAsyncOperation( | |
SCAsyncOperationProgressHandler progressCallback, | |
SCCancelAsyncOperationHandler cancelCallback, | |
SCDidFinishAsyncOperationHandler doneCallback) | |
{ | |
SCCancelAsyncOperation cancelBlockStub = ^void( BOOL isUnsubscribe ) | |
{ | |
//idle | |
}; | |
doneCallback( @[], nil ); | |
return [ cancelBlockStub copy ]; | |
}; | |
return [ result copy ]; | |
}; | |
self->_hook = [ [ ItemsLevelOperationBuilderHook alloc ] initWithHookImpl: hookImpl ]; | |
XCTAssertTrue( 0 == [ self->_levelsHistory currentLevel ], @"empty history expected" ); | |
XCTAssertNil( [ self->_levelsHistory lastItem ], @"nil last item expected" ); | |
XCTAssertNil( [ self->_levelsHistory lastRequest ], @"nil last request expected" ); | |
XCTAssertNil( [ self->_levelsHistory levelUpParentItem ], @"nil levelUp item expected" ); | |
XCTAssertNil( [ self->_levelsHistory levelUpRequest ], @"nil levelUp request expected" ); | |
[ self->_hook enableHook ]; | |
{ | |
[ self->_useCacheFm loadLevelForItem: self->_rootItemStub | |
callbacks: callbacks | |
ignoringCache: NO ]; | |
XCTAssertTrue( 1 == [ self->_levelsHistory currentLevel ], @"one element history expected" ); | |
XCTAssertNotNil( [ self->_levelsHistory lastItem ], @"nil last item expected" ); | |
XCTAssertNotNil( [ self->_levelsHistory lastRequest ], @"nil last request expected" ); | |
XCTAssertNil( [ self->_levelsHistory levelUpParentItem ], @"nil levelUp item expected" ); | |
XCTAssertNil( [ self->_levelsHistory levelUpRequest ], @"nil levelUp request expected" ); | |
XCTAssertNotNil( receivedResponse, @"invalid response" ); | |
XCTAssertNil( receivedError, @"unexpected" ); | |
XCTAssertTrue( 0 == [ receivedResponse.levelContentItems count ], @"empty list of children expected" ); | |
[ self->_useCacheFm loadLevelForItem: self->_rootItemStub | |
callbacks: callbacks | |
ignoringCache: NO ]; | |
XCTAssertTrue( 2 == [ self->_levelsHistory currentLevel ], @"two element history expected" ); | |
XCTAssertNotNil( [ self->_levelsHistory lastItem ], @"nil last item expected" ); | |
XCTAssertNotNil( [ self->_levelsHistory lastRequest ], @"nil last request expected" ); | |
XCTAssertNotNil( [ self->_levelsHistory levelUpParentItem ], @"nil levelUp item expected" ); | |
XCTAssertNotNil( [ self->_levelsHistory levelUpRequest ], @"nil levelUp request expected" ); | |
XCTAssertNotNil( receivedResponse, @"invalid response" ); | |
XCTAssertNil( receivedError, @"unexpected" ); | |
XCTAssertTrue( 1 == [ receivedResponse.levelContentItems count ], @"list of levelUp item only expected" ); | |
XCTAssertTrue( [ [ receivedResponse.levelContentItems lastObject ] isMemberOfClass: [ SCLevelUpItem class ] ], @"level up item class mismatch" ); | |
} | |
[ self->_hook disableHook ]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment