@@ -832,6 +832,44 @@ module FourSlash {
832832 }
833833 }
834834
835+ private validate ( name : string , expected : string , actual : string ) {
836+ if ( expected && expected !== actual ) {
837+ throw new Error ( "Expected " + name + " '" + expected + "'. Got '" + actual + "' instead." ) ;
838+ }
839+ }
840+
841+ public verifyRenameInfoSucceeded ( displayName ?: string , fullDisplayName ?: string , kind ?: string , kindModifiers ?: string ) {
842+ var renameInfo = this . languageService . getRenameInfo ( this . activeFile . fileName , this . currentCaretPosition ) ;
843+ if ( ! renameInfo . canRename ) {
844+ throw new Error ( "Rename did not succeed" ) ;
845+ }
846+
847+ this . validate ( "displayName" , displayName , renameInfo . displayName ) ;
848+ this . validate ( "fullDisplayName" , fullDisplayName , renameInfo . fullDisplayName ) ;
849+ this . validate ( "kind" , kind , renameInfo . kind ) ;
850+ this . validate ( "kindModifiers" , kindModifiers , renameInfo . kindModifiers ) ;
851+
852+ if ( this . getRanges ( ) . length !== 1 ) {
853+ throw new Error ( "Expected a single range to be selected in the test file." ) ;
854+ }
855+
856+ var expectedRange = this . getRanges ( ) [ 0 ] ;
857+ if ( renameInfo . triggerSpan . start ( ) !== expectedRange . start ||
858+ renameInfo . triggerSpan . end ( ) !== expectedRange . end ) {
859+ throw new Error ( "Expected triggerSpan [" + expectedRange . start + "," + expectedRange . end + "). Got [" +
860+ renameInfo . triggerSpan . start ( ) + "," + renameInfo . triggerSpan . end ( ) + ") instead." ) ;
861+ }
862+ }
863+
864+ public verifyRenameInfoFailed ( message ?: string ) {
865+ var renameInfo = this . languageService . getRenameInfo ( this . activeFile . fileName , this . currentCaretPosition ) ;
866+ if ( renameInfo . canRename ) {
867+ throw new Error ( "Rename was expected to fail" ) ;
868+ }
869+
870+ this . validate ( "error" , message , renameInfo . localizedErrorMessage ) ;
871+ }
872+
835873 //private getFormalParameter() {
836874 // var help = this.languageService.getSignatureHelpItems(this.activeFile.fileName, this.currentCaretPosition);
837875 // return help.formal;
0 commit comments