Skip to content

Commit f1ba8b3

Browse files
Merge pull request #18452 from SmartyAnsh/BAEL-8822-Introduction-to-Objenesis
BAEL-8822 - introduction to objenesis
2 parents f568899 + efd1784 commit f1ba8b3

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
@@ -203,6 +203,11 @@
203203
<artifactId>github-api</artifactId>
204204
<version>${github-api.version}</version>
205205
</dependency>
206+
<dependency>
207+
<groupId>org.objenesis</groupId>
208+
<artifactId>objenesis</artifactId>
209+
<version>${objenesis.version}</version>
210+
</dependency>
206211
<dependency>
207212
<groupId>org.springframework.boot</groupId>
208213
<artifactId>spring-boot-starter-test</artifactId>
@@ -226,6 +231,7 @@
226231
<resilience4j.version>2.1.0</resilience4j.version>
227232
<jline.version>3.28.0</jline.version>
228233
<github-api.version>1.327</github-api.version>
234+
<objenesis.version>3.4</objenesis.version>
229235
</properties>
230236

231237
</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 ObjenesisUnitTest {
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)