Skip to content

Commit c6beac0

Browse files
committed
BAEL-8822 - introduction to objenesis
1 parent 0d82bc1 commit c6beac0

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

libraries-5/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@
198198
<artifactId>jline-terminal-jansi</artifactId>
199199
<version>${jline.version}</version>
200200
</dependency>
201+
<dependency>
202+
<groupId>org.objenesis</groupId>
203+
<artifactId>objenesis</artifactId>
204+
<version>${objenesis.version}</version>
205+
</dependency>
201206
<dependency>
202207
<groupId>org.springframework.boot</groupId>
203208
<artifactId>spring-boot-starter-test</artifactId>
@@ -220,6 +225,7 @@
220225
<sootup.version>1.3.0</sootup.version>
221226
<resilience4j.version>2.1.0</resilience4j.version>
222227
<jline.version>3.28.0</jline.version>
228+
<objenesis.version>3.4</objenesis.version>
223229
</properties>
224230

225231
</project>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.baeldung.objenesis;
2+
3+
import java.io.Serializable;
4+
5+
public class User implements Serializable {
6+
7+
private String name;
8+
9+
public User() {
10+
throw new RuntimeException("User constructor should not be called!");
11+
}
12+
13+
public String getName() {
14+
return name;
15+
}
16+
17+
public void setName(String name) {
18+
this.name = name;
19+
}
20+
}
21+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.baeldung.objenesis;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
5+
6+
import org.junit.jupiter.api.Test;
7+
import org.objenesis.Objenesis;
8+
import org.objenesis.ObjenesisHelper;
9+
import org.objenesis.ObjenesisSerializer;
10+
import org.objenesis.ObjenesisStd;
11+
12+
public class ObjenesisTest {
13+
14+
@Test
15+
void givenObjenesisStd_whenCreatingUser_thenObjectIsCreatedWithoutConstructor() {
16+
Objenesis objenesis = new ObjenesisStd();
17+
User user = objenesis.newInstance(User.class);
18+
assertNotNull(user);
19+
20+
user.setName("Harry Potter");
21+
assertEquals("Harry Potter", user.getName());
22+
}
23+
24+
@Test
25+
void givenObjenesisSerializer_whenCreatingUser_thenObjectIsCreatedWithoutConstructor() {
26+
Objenesis objenesis = new ObjenesisSerializer();
27+
User user = objenesis.newInstance(User.class);
28+
assertNotNull(user);
29+
30+
user.setName("Harry Potter");
31+
assertEquals("Harry Potter", user.getName());
32+
}
33+
34+
@Test
35+
void givenObjenesisHelper_whenCreatingUser_thenObjectIsCreatedWithoutConstructor() {
36+
User user = ObjenesisHelper.newInstance(User.class);
37+
assertNotNull(user);
38+
39+
user.setName("Harry Potter");
40+
assertEquals("Harry Potter", user.getName());
41+
}
42+
43+
@Test
44+
void givenObjenesisHelper_whenCreatingSerializableUser_thenObjectIsCreatedWithoutConstructor() {
45+
User user = ObjenesisHelper.newSerializableInstance(User.class);
46+
assertNotNull(user);
47+
48+
user.setName("Harry Potter");
49+
assertEquals("Harry Potter", user.getName());
50+
}
51+
52+
}

0 commit comments

Comments
 (0)