Bael 7050 Java 21 New Features (#15870)
* BAEL-7050 Java 21 New Features * BAEL-7050 Formatted the pom.xml file * BAEL-7050 Moved the codebase to existing core-java-21 project * Removed the old pom.xml reference * Removed the old core-java-21-new-features project * BAEL-7050 PR Review Changes * BAEL-7050 Using JUnit5 in test cases * BAEL-7050 Using JUnit5 in test cases * BAEL-7050 Removed the public modifier from JUnit class and methods
This commit is contained in:
parent
6719beae86
commit
39427baf50
|
@ -0,0 +1,32 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
public class PatternCaseLabels {
|
||||||
|
|
||||||
|
static String processInputOld(String input) {
|
||||||
|
String output;
|
||||||
|
switch (input) {
|
||||||
|
case null -> output = "Oops, null";
|
||||||
|
case String s -> {
|
||||||
|
if ("Yes".equalsIgnoreCase(s)) {
|
||||||
|
output = "It's Yes";
|
||||||
|
} else if ("No".equalsIgnoreCase(s)) {
|
||||||
|
output = "It's No";
|
||||||
|
} else {
|
||||||
|
output = "Try Again";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
static String processInputNew(String input) {
|
||||||
|
String output;
|
||||||
|
switch (input) {
|
||||||
|
case null -> output = "Oops, null";
|
||||||
|
case String s when "Yes".equalsIgnoreCase(s) -> output = "It's Yes";
|
||||||
|
case String s when "No".equalsIgnoreCase(s) -> output = "It's No";
|
||||||
|
case String s -> output = "Try Again";
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
public class RecordPattern {
|
||||||
|
|
||||||
|
record Point(int x, int y) {}
|
||||||
|
|
||||||
|
public static int beforeRecordPattern(Object obj) {
|
||||||
|
int sum = 0;
|
||||||
|
if(obj instanceof Point p) {
|
||||||
|
int x = p.x();
|
||||||
|
int y = p.y();
|
||||||
|
sum = x+y;
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int afterRecordPattern(Object obj) {
|
||||||
|
if(obj instanceof Point(int x, int y)) {
|
||||||
|
return x+y;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Color {RED, GREEN, BLUE}
|
||||||
|
|
||||||
|
record ColoredPoint(Point point, Color color) {}
|
||||||
|
|
||||||
|
record RandomPoint(ColoredPoint cp) {}
|
||||||
|
|
||||||
|
public static Color getRamdomPointColor(RandomPoint r) {
|
||||||
|
if(r instanceof RandomPoint(ColoredPoint cp)) {
|
||||||
|
return cp.color();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
public class StringTemplates {
|
||||||
|
|
||||||
|
public String getStringTemplate() {
|
||||||
|
String name = "Baeldung";
|
||||||
|
return STR."Welcome to \{name}";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
public class SwitchPattern {
|
||||||
|
|
||||||
|
static class Account{
|
||||||
|
double getBalance() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SavingsAccount extends Account {
|
||||||
|
@Override
|
||||||
|
double getBalance() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class TermAccount extends Account {
|
||||||
|
@Override
|
||||||
|
double getBalance() {
|
||||||
|
return 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static class CurrentAccount extends Account {
|
||||||
|
@Override
|
||||||
|
double getBalance() {
|
||||||
|
return 10000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static double getBalanceWithOutSwitchPattern(Account account) {
|
||||||
|
double balance = 0;
|
||||||
|
if(account instanceof SavingsAccount sa) {
|
||||||
|
balance = sa.getBalance();
|
||||||
|
}
|
||||||
|
else if(account instanceof TermAccount ta) {
|
||||||
|
balance = ta.getBalance();
|
||||||
|
}
|
||||||
|
else if(account instanceof CurrentAccount ca) {
|
||||||
|
balance = ca.getBalance();
|
||||||
|
}
|
||||||
|
return balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
static double getBalanceWithSwitchPattern(Account account) {
|
||||||
|
double result;
|
||||||
|
switch (account) {
|
||||||
|
case null -> throw new IllegalArgumentException("Oops, account is null");
|
||||||
|
case SavingsAccount sa -> result = sa.getBalance();
|
||||||
|
case TermAccount ta -> result = ta.getBalance();
|
||||||
|
case CurrentAccount ca -> result = ca.getBalance();
|
||||||
|
default -> result = account.getBalance();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class PatternCaseLabelsUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputOldWayWithYes_thenReturnOutput() {
|
||||||
|
assertEquals("It's Yes", PatternCaseLabels.processInputOld("Yes"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputOldWayWithNo_thenReturnOutput() {
|
||||||
|
assertEquals("It's No", PatternCaseLabels.processInputOld("No"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputOldWayWithNull_thenReturnOutput() {
|
||||||
|
assertEquals("Oops, null", PatternCaseLabels.processInputOld(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputOldWayWithInvalidOption_thenReturnOutput() {
|
||||||
|
assertEquals("Try Again", PatternCaseLabels.processInputOld("Invalid Option"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputNewWayWithYes_thenReturnOutput() {
|
||||||
|
assertEquals("It's Yes", PatternCaseLabels.processInputNew("Yes"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputNewWayWithNo_thenReturnOutput() {
|
||||||
|
assertEquals("It's No", PatternCaseLabels.processInputNew("No"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputNewWayWithNull_thenReturnOutput() {
|
||||||
|
assertEquals("Oops, null", PatternCaseLabels.processInputNew(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenProcessInputNewWayWithInvalidOption_thenReturnOutput() {
|
||||||
|
assertEquals("Try Again", PatternCaseLabels.processInputNew("Invalid Option"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import com.baeldung.java21.RecordPattern.Color;
|
||||||
|
import com.baeldung.java21.RecordPattern.ColoredPoint;
|
||||||
|
import com.baeldung.java21.RecordPattern.Point;
|
||||||
|
import com.baeldung.java21.RecordPattern.RandomPoint;
|
||||||
|
|
||||||
|
class RecordPatternUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenNoRecordPattern_thenReturnOutput() {
|
||||||
|
assertEquals(5, RecordPattern.beforeRecordPattern(new Point(2, 3)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenRecordPattern_thenReturnOutput() {
|
||||||
|
assertEquals(5, RecordPattern.afterRecordPattern(new Point(2, 3)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenRecordPattern_thenReturnColorOutput() {
|
||||||
|
ColoredPoint coloredPoint = new ColoredPoint(new Point(2, 3), Color.GREEN);
|
||||||
|
RandomPoint randomPoint = new RandomPoint(coloredPoint);
|
||||||
|
assertEquals(Color.GREEN, RecordPattern.getRamdomPointColor(randomPoint));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class StringTemplateUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenNoSwitchPattern_thenReturnSavingsAccountBalance() {
|
||||||
|
StringTemplates stringTemplates = new StringTemplates();
|
||||||
|
assertEquals("Welcome to Baeldung", stringTemplates.getStringTemplate());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.baeldung.java21;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class SwitchPatternUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenNoSwitchPattern_thenReturnSavingsAccountBalance() {
|
||||||
|
SwitchPattern.SavingsAccount savingsAccount = new SwitchPattern.SavingsAccount();
|
||||||
|
assertEquals(100, SwitchPattern.getBalanceWithOutSwitchPattern(savingsAccount), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void whenSwitchPattern_thenReturnSavingsAccountBalance() {
|
||||||
|
SwitchPattern.SavingsAccount savingsAccount = new SwitchPattern.SavingsAccount();
|
||||||
|
assertEquals(100, SwitchPattern.getBalanceWithSwitchPattern(savingsAccount), 0);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue