IntelliJ Platform Plugin SDK Help

6. Rename Test

This test verifies the Simple Language in-place rename functionality, implemented in the Reference Contributor section of the Custom Language Support Tutorial, works as expected.

Define Input Test Data

Create the RenameTestData.simple properties file in the testData directory.

# You are reading the ".properties" entry. ! The exclamation mark can also mark text as comments. website = https://en.wikipedia.org/ language = English # The backslash below tells the application to continue reading # the value onto the next line. message = Welcome to \ Wikipedia! # Add spaces to the key key\ with\ spaces = This is the value that could be looked up with the key "key with spaces". # Unicode tab : \u0009

Create the file RenameTestData.java in the testData directory. This file contains one Simple Language reference embedded in Java, with the caret position placed just after a Simple Language key.

public class Test { public static void main(String[] args) { System.out.println("simple:website<caret>"); } }

Create Output Test Data

Create the RenameTestDataAfter.simple properties file in the testData directory. This file contains the expected outcome of the test. Note the website = in RenameTestData.simple should be renamed to websiteUrl = by the test.

# You are reading the ".properties" entry. ! The exclamation mark can also mark text as comments. websiteUrl = https://en.wikipedia.org/ language = English # The backslash below tells the application to continue reading # the value onto the next line. message = Welcome to \ Wikipedia! # Add spaces to the key key\ with\ spaces = This is the value that could be looked up with the key "key with spaces". # Unicode tab : \u0009

Define a Test Method

Add the testRename() method to the SimpleCodeInsightTest class previously defined.

  • Again, this method configures the test fixture by using the test files.

  • The fixture then renames the Simple Language element at the caret in RenameTestData.java.

  • It then compares the input and output property files, ignoring whitespace.

public void testRename() { myFixture.configureByFiles("RenameTestData.java", "RenameTestData.simple"); myFixture.renameElementAtCaret("websiteUrl"); myFixture.checkResultByFile("RenameTestData.simple", "RenameTestDataAfter.simple", false); }

Run the Test

Run the test and make sure it's green.

Last modified: 14 January 2021