Skip to content

Commit 7ff89bd

Browse files
author
Hattinger04
committed
creating first test methods
1 parent d949c77 commit 7ff89bd

File tree

6 files changed

+94
-18
lines changed

6 files changed

+94
-18
lines changed

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
<dependency>
102102
<groupId>com.fasterxml.jackson.core</groupId>
103103
<artifactId>jackson-databind</artifactId>
104-
<version>[2.13.4.1,)</version><!--$NO-MVN-MAN-VER$-->
104+
<version>[2.13.4.1,)</version><!--$NO-MVN-MAN-VER$ -->
105105
</dependency>
106106
<dependency>
107107
<groupId>org.apache.httpcomponents</groupId>
@@ -113,6 +113,12 @@
113113
<groupId>org.springframework.boot</groupId>
114114
<artifactId>spring-boot-starter-oauth2-client</artifactId>
115115
</dependency>
116+
<dependency>
117+
<groupId>org.springframework.security</groupId>
118+
<artifactId>spring-security-test</artifactId>
119+
<version>5.4.3</version>
120+
<scope>test</scope>
121+
</dependency>
116122

117123
</dependencies>
118124

src/main/java/io/github/Hattinger04/configuration/CustomPasswordEncoder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,21 @@ public class CustomPasswordEncoder implements PasswordEncoder {
1414
private String pepper;
1515

1616
@Value("${password.rounds}")
17-
private int rounds;
17+
private String rounds;
1818

1919

2020
public CustomPasswordEncoder() {}
2121

2222
@Override
2323
public String encode(CharSequence rawPassword) {
24-
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(rounds);
24+
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(Integer.valueOf(rounds));
2525
String saltedPassword = pepper + rawPassword + pepper;
2626
return encoder.encode(saltedPassword);
2727
}
2828

2929
@Override
3030
public boolean matches(CharSequence rawPassword, String encodedPassword) {
31-
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(rounds);
31+
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(Integer.valueOf(rounds));
3232
String saltedPassword = pepper + rawPassword + pepper;
3333
return encoder.matches(saltedPassword, encodedPassword);
3434
}

src/main/resources/allLogs.log

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,3 +412,5 @@ Dez. 25, 2022 7:48:13 PM io.github.Hattinger04.aop.LogAspect loginLog
412412
FEIN: User(id=null, username=admin, password=admin, active=null, roles=null) - [logged in]
413413
Dez. 25, 2022 8:52:29 PM io.github.Hattinger04.aop.LogAspect loginLog
414414
FEIN: User(id=null, username=admin, password=admin, active=null, roles=null) - [logged in]
415+
Dez. 26, 2022 6:58:04 PM io.github.Hattinger04.aop.LogAspect loginLog
416+
FEIN: User(id=null, username=admin, password=admin, active=null, roles=null) - [logged in]

src/main/resources/application.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
77

88
server.address=0.0.0.0
99

10+
local.server.port: 8443
1011
server.port: 8443
1112
server.ssl.enabled=true
1213
server.ssl.key-alias=tomcat
@@ -19,4 +20,4 @@ server.ssl.key-store-password=Winter21!
1920

2021
# all reqests should begin with /api:
2122
spring.mvc.servlet.path=/api
22-
bcrypt.strength=15
23+
spring.jackson.serialization.indent-output=true

src/test/java/io/github/Hattinger04/ProjectWebsiteApplicationTests.java

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package io.github.Hattinger04;
2+
3+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
4+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
5+
6+
import org.junit.Before;
7+
import org.junit.jupiter.api.Test;
8+
import org.junit.runner.RunWith;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
11+
import org.springframework.boot.autoconfigure.domain.EntityScan;
12+
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
13+
import org.springframework.boot.test.context.SpringBootTest;
14+
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
15+
import org.springframework.boot.web.server.LocalServerPort;
16+
import org.springframework.context.annotation.ComponentScan;
17+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
18+
import org.springframework.http.HttpStatus;
19+
import org.springframework.security.test.context.support.WithMockUser;
20+
import org.springframework.test.context.junit4.SpringRunner;
21+
import org.springframework.test.web.servlet.MockMvc;
22+
import org.springframework.test.web.servlet.MvcResult;
23+
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
24+
25+
import io.github.Hattinger04.user.UserController;
26+
27+
@RunWith(SpringRunner.class)
28+
@EntityScan("io.github.Hattinger04.*")
29+
@ComponentScan(basePackages = { "io.github.Hattinger04.*" })
30+
@EnableJpaRepositories(basePackages = "io.github.Hattinger04.*")
31+
@AutoConfigureMockMvc
32+
@EnableAutoConfiguration
33+
34+
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = { UserController.class })
35+
class UserControllerTest {
36+
37+
@LocalServerPort
38+
private int port;
39+
40+
@Autowired
41+
private MockMvc mockMvc;
42+
43+
@Before
44+
public void setup() {
45+
this.mockMvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
46+
}
47+
48+
public void output(int status) {
49+
if (status == HttpStatus.OK.value()) {
50+
System.out.println("\033[32mTest passed!\033[0m");
51+
} else {
52+
System.out.println("\033[31mTest failed!\033[0m");
53+
}
54+
}
55+
56+
@Test
57+
@WithMockUser(authorities = "ADMIN")
58+
public void testGetUsers() throws Exception {
59+
MvcResult result = mockMvc.perform(get("https://localhost:" + port + "/user/users"))
60+
.andExpect(status().is(HttpStatus.OK.value())).andReturn();
61+
62+
output(result.getResponse().getStatus());
63+
}
64+
65+
@Test
66+
@WithMockUser(authorities = "ADMIN")
67+
public void testGetFirstUserByID() throws Exception {
68+
MvcResult result = mockMvc.perform(get("https://localhost:" + port + "/user/users/1"))
69+
.andExpect(status().is(HttpStatus.OK.value())).andReturn();
70+
output(result.getResponse().getStatus());
71+
}
72+
73+
@Test
74+
@WithMockUser(authorities = "ADMIN")
75+
public void testGetAdminUserByUsername() throws Exception {
76+
MvcResult result = mockMvc.perform(get("https://localhost:" + port + "/user/users?username=admin"))
77+
.andExpect(status().is(HttpStatus.OK.value())).andReturn();
78+
output(result.getResponse().getStatus());
79+
}
80+
}

0 commit comments

Comments
 (0)