Skip to content

Instantly share code, notes, and snippets.

@dodikk
Created February 14, 2014 08:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dodikk/8997822 to your computer and use it in GitHub Desktop.
Save dodikk/8997822 to your computer and use it in GitHub Desktop.
-(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