From 69f8d56f3e2e3e8bebb2d364a561cd68418d6574 Mon Sep 17 00:00:00 2001 From: Sampada <46674082+sampada07@users.noreply.github.com> Date: Fri, 6 Dec 2019 12:43:38 +0530 Subject: [PATCH] BAEL-3511 : Default parameters in Java (#8317) * Added Assertj dependency * Default parameter example POJO and test class --- core-java-modules/core-java-lang-2/pom.xml | 115 ++++++++++-------- .../java/com/baeldung/defaultparams/Tea.java | 61 ++++++++++ .../baeldung/defaultparams/TeaUnitTest.java | 20 +++ 3 files changed, 142 insertions(+), 54 deletions(-) create mode 100644 core-java-modules/core-java-lang-2/src/main/java/com/baeldung/defaultparams/Tea.java create mode 100644 core-java-modules/core-java-lang-2/src/test/java/com/baeldung/defaultparams/TeaUnitTest.java diff --git a/core-java-modules/core-java-lang-2/pom.xml b/core-java-modules/core-java-lang-2/pom.xml index 3230498f41..88e92aaf22 100644 --- a/core-java-modules/core-java-lang-2/pom.xml +++ b/core-java-modules/core-java-lang-2/pom.xml @@ -1,54 +1,61 @@ - - 4.0.0 - core-java-lang-2 - 0.1.0-SNAPSHOT - core-java-lang-2 - jar - - - com.baeldung - parent-java - 0.0.1-SNAPSHOT - ../../parent-java - - - - - commons-beanutils - commons-beanutils - 1.9.4 - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh-generator.version} - - - org.openjdk.jmh - jmh-generator-bytecode - ${jmh-generator.version} - - - org.openjdk.jmh - jmh-core - ${jmh-core.version} - - - - - core-java-lang-2 - - - src/main/resources - true - - - - - - 1.19 - 1.19 - - - + + 4.0.0 + core-java-lang-2 + 0.1.0-SNAPSHOT + core-java-lang-2 + jar + + + com.baeldung + parent-java + 0.0.1-SNAPSHOT + ../../parent-java + + + + + commons-beanutils + commons-beanutils + 1.9.4 + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh-generator.version} + + + org.openjdk.jmh + jmh-generator-bytecode + ${jmh-generator.version} + + + org.openjdk.jmh + jmh-core + ${jmh-core.version} + + + org.assertj + assertj-core + ${assertj.version} + test + + + + + core-java-lang-2 + + + src/main/resources + true + + + + + + 1.19 + 1.19 + 3.12.2 + + + diff --git a/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/defaultparams/Tea.java b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/defaultparams/Tea.java new file mode 100644 index 0000000000..0680813041 --- /dev/null +++ b/core-java-modules/core-java-lang-2/src/main/java/com/baeldung/defaultparams/Tea.java @@ -0,0 +1,61 @@ +package com.baeldung.defaultparams; + +public class Tea { + + static final int DEFAULT_TEA_POWDER = 1; // add 1 tbsp tea powder by default + + private String name; // mandatory + private int milk; // ml + private boolean herbs; // add herbs or don't + private int sugar; // tbsp + private int teaPowder; // tbsp + + public Tea(String name, int milk, boolean herbs, int sugar, int teaPowder) { + this.name = name; + this.milk = milk; + this.herbs = herbs; + this.sugar = sugar; + this.teaPowder = teaPowder; + } + + // when tea powder is not provided by client, use default value + public Tea(String name, int milk, boolean herbs, int sugar) { + this(name, milk, herbs, sugar, DEFAULT_TEA_POWDER); + } + + // when sugar is not provided by client, don't add it + public Tea(String name, int milk, boolean herbs) { + this(name, milk, herbs, 0); + } + + // when herbs is not provided by client, don't add it + public Tea(String name, int milk) { + this(name, milk, false); + } + + // when milk is not provided by client, don't add it + public Tea(String name) { + this(name, 0); + } + + public String getName() { + return name; + } + + public int getMilk() { + return milk; + } + + public boolean isHerbs() { + return herbs; + } + + public int getSugar() { + return sugar; + } + + public int getTeaPowder() { + return teaPowder; + } + +} diff --git a/core-java-modules/core-java-lang-2/src/test/java/com/baeldung/defaultparams/TeaUnitTest.java b/core-java-modules/core-java-lang-2/src/test/java/com/baeldung/defaultparams/TeaUnitTest.java new file mode 100644 index 0000000000..418e2788aa --- /dev/null +++ b/core-java-modules/core-java-lang-2/src/test/java/com/baeldung/defaultparams/TeaUnitTest.java @@ -0,0 +1,20 @@ +package com.baeldung.defaultparams; + +import static org.assertj.core.api.Assertions.assertThat; +import org.junit.Test; + + +public class TeaUnitTest { + + @Test + public void whenTeaWithOnlyName_thenCreateDefaultTea() { + Tea blackTea = new Tea("Black Tea"); + + assertThat(blackTea.getName()).isEqualTo("Black Tea"); + assertThat(blackTea.getMilk()).isEqualTo(0); + assertThat(blackTea.isHerbs()).isFalse(); + assertThat(blackTea.getSugar()).isEqualTo(0); + assertThat(blackTea.getTeaPowder()).isEqualTo(Tea.DEFAULT_TEA_POWDER); + } + +}