Skip to content

Commit 957cfeb

Browse files
Sampadamaibin
authored andcommitted
BAEL-3511 : Default parameters in Java (eugenp#8317)
* Added Assertj dependency * Default parameter example POJO and test class
1 parent d6a1dcc commit 957cfeb

3 files changed

Lines changed: 142 additions & 54 deletions

File tree

Lines changed: 61 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,61 @@
1-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3-
<modelVersion>4.0.0</modelVersion>
4-
<artifactId>core-java-lang-2</artifactId>
5-
<version>0.1.0-SNAPSHOT</version>
6-
<name>core-java-lang-2</name>
7-
<packaging>jar</packaging>
8-
9-
<parent>
10-
<groupId>com.baeldung</groupId>
11-
<artifactId>parent-java</artifactId>
12-
<version>0.0.1-SNAPSHOT</version>
13-
<relativePath>../../parent-java</relativePath>
14-
</parent>
15-
16-
<dependencies>
17-
<dependency>
18-
<groupId>commons-beanutils</groupId>
19-
<artifactId>commons-beanutils</artifactId>
20-
<version>1.9.4</version>
21-
</dependency>
22-
<dependency>
23-
<groupId>org.openjdk.jmh</groupId>
24-
<artifactId>jmh-generator-annprocess</artifactId>
25-
<version>${jmh-generator.version}</version>
26-
</dependency>
27-
<dependency>
28-
<groupId>org.openjdk.jmh</groupId>
29-
<artifactId>jmh-generator-bytecode</artifactId>
30-
<version>${jmh-generator.version}</version>
31-
</dependency>
32-
<dependency>
33-
<groupId>org.openjdk.jmh</groupId>
34-
<artifactId>jmh-core</artifactId>
35-
<version>${jmh-core.version}</version>
36-
</dependency>
37-
</dependencies>
38-
39-
<build>
40-
<finalName>core-java-lang-2</finalName>
41-
<resources>
42-
<resource>
43-
<directory>src/main/resources</directory>
44-
<filtering>true</filtering>
45-
</resource>
46-
</resources>
47-
</build>
48-
49-
<properties>
50-
<jmh-core.version>1.19</jmh-core.version>
51-
<jmh-generator.version>1.19</jmh-generator.version>
52-
</properties>
53-
54-
</project>
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<artifactId>core-java-lang-2</artifactId>
5+
<version>0.1.0-SNAPSHOT</version>
6+
<name>core-java-lang-2</name>
7+
<packaging>jar</packaging>
8+
9+
<parent>
10+
<groupId>com.baeldung</groupId>
11+
<artifactId>parent-java</artifactId>
12+
<version>0.0.1-SNAPSHOT</version>
13+
<relativePath>../../parent-java</relativePath>
14+
</parent>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>commons-beanutils</groupId>
19+
<artifactId>commons-beanutils</artifactId>
20+
<version>1.9.4</version>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.openjdk.jmh</groupId>
24+
<artifactId>jmh-generator-annprocess</artifactId>
25+
<version>${jmh-generator.version}</version>
26+
</dependency>
27+
<dependency>
28+
<groupId>org.openjdk.jmh</groupId>
29+
<artifactId>jmh-generator-bytecode</artifactId>
30+
<version>${jmh-generator.version}</version>
31+
</dependency>
32+
<dependency>
33+
<groupId>org.openjdk.jmh</groupId>
34+
<artifactId>jmh-core</artifactId>
35+
<version>${jmh-core.version}</version>
36+
</dependency>
37+
<dependency>
38+
<groupId>org.assertj</groupId>
39+
<artifactId>assertj-core</artifactId>
40+
<version>${assertj.version}</version>
41+
<scope>test</scope>
42+
</dependency>
43+
</dependencies>
44+
45+
<build>
46+
<finalName>core-java-lang-2</finalName>
47+
<resources>
48+
<resource>
49+
<directory>src/main/resources</directory>
50+
<filtering>true</filtering>
51+
</resource>
52+
</resources>
53+
</build>
54+
55+
<properties>
56+
<jmh-core.version>1.19</jmh-core.version>
57+
<jmh-generator.version>1.19</jmh-generator.version>
58+
<assertj.version>3.12.2</assertj.version>
59+
</properties>
60+
61+
</project>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.baeldung.defaultparams;
2+
3+
public class Tea {
4+
5+
static final int DEFAULT_TEA_POWDER = 1; // add 1 tbsp tea powder by default
6+
7+
private String name; // mandatory
8+
private int milk; // ml
9+
private boolean herbs; // add herbs or don't
10+
private int sugar; // tbsp
11+
private int teaPowder; // tbsp
12+
13+
public Tea(String name, int milk, boolean herbs, int sugar, int teaPowder) {
14+
this.name = name;
15+
this.milk = milk;
16+
this.herbs = herbs;
17+
this.sugar = sugar;
18+
this.teaPowder = teaPowder;
19+
}
20+
21+
// when tea powder is not provided by client, use default value
22+
public Tea(String name, int milk, boolean herbs, int sugar) {
23+
this(name, milk, herbs, sugar, DEFAULT_TEA_POWDER);
24+
}
25+
26+
// when sugar is not provided by client, don't add it
27+
public Tea(String name, int milk, boolean herbs) {
28+
this(name, milk, herbs, 0);
29+
}
30+
31+
// when herbs is not provided by client, don't add it
32+
public Tea(String name, int milk) {
33+
this(name, milk, false);
34+
}
35+
36+
// when milk is not provided by client, don't add it
37+
public Tea(String name) {
38+
this(name, 0);
39+
}
40+
41+
public String getName() {
42+
return name;
43+
}
44+
45+
public int getMilk() {
46+
return milk;
47+
}
48+
49+
public boolean isHerbs() {
50+
return herbs;
51+
}
52+
53+
public int getSugar() {
54+
return sugar;
55+
}
56+
57+
public int getTeaPowder() {
58+
return teaPowder;
59+
}
60+
61+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.baeldung.defaultparams;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import org.junit.Test;
5+
6+
7+
public class TeaUnitTest {
8+
9+
@Test
10+
public void whenTeaWithOnlyName_thenCreateDefaultTea() {
11+
Tea blackTea = new Tea("Black Tea");
12+
13+
assertThat(blackTea.getName()).isEqualTo("Black Tea");
14+
assertThat(blackTea.getMilk()).isEqualTo(0);
15+
assertThat(blackTea.isHerbs()).isFalse();
16+
assertThat(blackTea.getSugar()).isEqualTo(0);
17+
assertThat(blackTea.getTeaPowder()).isEqualTo(Tea.DEFAULT_TEA_POWDER);
18+
}
19+
20+
}

0 commit comments

Comments
 (0)