diff --git a/core-java-modules/core-java-13/pom.xml b/core-java-modules/core-java-13/pom.xml new file mode 100644 index 0000000000..1f215ae6b0 --- /dev/null +++ b/core-java-modules/core-java-13/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + com.baeldung + core-java-13 + 0.1.0-SNAPSHOT + core-java-13 + jar + http://maven.apache.org + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../../ + + + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${maven.compiler.source.version} + ${maven.compiler.target.version} + 13 + --enable-preview + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M3 + + --enable-preview + + + + + + + 13 + 13 + 3.6.1 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-13/src/test/java/com/baeldung/switchExpression/SwitchExpressionsUnitTest.java b/core-java-modules/core-java-13/src/test/java/com/baeldung/switchExpression/SwitchExpressionsUnitTest.java new file mode 100644 index 0000000000..bb9250f000 --- /dev/null +++ b/core-java-modules/core-java-13/src/test/java/com/baeldung/switchExpression/SwitchExpressionsUnitTest.java @@ -0,0 +1,76 @@ +package com.baeldung.switchExpression; + +import static java.time.Month.AUGUST; +import static java.time.Month.JUNE; + +import static org.junit.Assert.assertEquals; + +import java.time.Month; +import java.util.function.Function; + +import org.junit.Test; + +public class SwitchExpressionsUnitTest { + + @Test + @SuppressWarnings ("preview") + public void whenSwitchingOverMonthJune_thenWillReturn3() { + + var month = JUNE; + + var result = switch (month) { + case JANUARY, JUNE, JULY -> 3; + case FEBRUARY, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER -> 1; + case MARCH, MAY, APRIL -> 2; + default -> 0; + }; + + assertEquals(result, 3); + } + + @Test + @SuppressWarnings ("preview") + public void whenSwitchingOverMonthAugust_thenWillReturn24() { + var month = AUGUST; + + var result = switch (month) { + case JANUARY, JUNE, JULY -> 3; + case FEBRUARY, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER -> 1; + case MARCH, MAY, APRIL, AUGUST -> { + int monthLength = month.toString().length(); + yield monthLength * 4; + } + default -> 0; + }; + + assertEquals(24, result); + } + + @Test + @SuppressWarnings ("preview") + public void whenSwitchingOverMonthJanuary_thenWillReturn3() { + + Function func = (month) -> { + switch (month) { + case JANUARY, JUNE, JULY -> { return 3; } + default -> { return 0; } + } + }; + + assertEquals(Integer.valueOf(3), func.apply(Month.JANUARY)); + } + + @Test + @SuppressWarnings ("preview") + public void whenSwitchingOverMonthAugust_thenWillReturn2() { + var month = AUGUST; + + var result = switch (month) { + case JANUARY, JUNE, JULY -> 3; + case FEBRUARY, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER -> 1; + case MARCH, MAY, APRIL, AUGUST -> 2; + }; + + assertEquals(result, 2); + } +}