void () { final List<Trinity<String, String, String>> variants = Arrays.asList( Trinity.create("yes", "barkling", "dog"), Trinity.create("yes", "meowing", "cat"), Trinity.create("yes", "crowling", "mouse"), Trinity.create("not", "apparel", "schrank"), Trinity.create("not", "dinner", "tisch"), Trinity.create("not", "rest", "sessel")); variants.forEach( t -> { final PsiFile file = myFixture.configureByText( JsonFileType.INSTANCE, String.format("{\"alive\":\"%s\",\n\"feature\":\"%s\"}", t.getFirst(), t.getSecond())); final JsonFile jsonFile = ObjectUtils.tryCast(file, JsonFile.class); Assert.assertNotNull(jsonFile); final JsonObject top = ObjectUtils.tryCast(jsonFile.getTopLevelValue(), JsonObject.class); Assert.assertNotNull(top); TextRange range = top.findProperty("alive").getNameElement().getTextRange(); checkNavigationToSchemaVariant("alive", range.getStartOffset() + 1, t.getThird()); range = top.findProperty("feature").getNameElement().getTextRange(); checkNavigationToSchemaVariant("feature", range.getStartOffset() + 1, t.getThird()); } ); }