From 5b9413d2feedd5127fd92b6d4bb413d602da3967 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Fri, 27 Jun 2025 14:46:29 +0200 Subject: [PATCH] [java] IDEA-372997 Add tests for availability of Structured Concurrency templates GitOrigin-RevId: c60edd41d08a99bdb6bf79baaacbd9bca2bdc28b --- .../template/JavaLiveTemplateTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/template/JavaLiveTemplateTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/template/JavaLiveTemplateTest.java index 0d84059f5d3b..e7e010aa3aa3 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/template/JavaLiveTemplateTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/template/JavaLiveTemplateTest.java @@ -912,6 +912,50 @@ public class JavaLiveTemplateTest extends LiveTemplateTestCase { ); } + public void testSTSSAvailable() { + final TemplateImpl template = TemplateSettings.getInstance().getTemplate("stss", "Java"); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_20, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21_PREVIEW, () -> { + assertTrue(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_24_PREVIEW, () -> { + assertTrue(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_25, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_25_PREVIEW, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + } + + public void testSTSAvailable() { + final TemplateImpl template = TemplateSettings.getInstance().getTemplate("sts", "Java"); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_20, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_21_PREVIEW, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_24_PREVIEW, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_25, () -> { + assertFalse(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_25_PREVIEW, () -> { + assertTrue(isApplicable("class Foo {void x(){ JUNK }", template)); + }); + } + public void testIOPAvailable() { final TemplateImpl template = TemplateSettings.getInstance().getTemplate("iop", "Java");