Skip to content

Commit 9ed5f72

Browse files
committed
[BAEL-9326] fixes for packaging
1 parent 05fa4ba commit 9ed5f72

File tree

4 files changed

+116
-0
lines changed

4 files changed

+116
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.baeldung.mcp.mcpclientoauth2;
2+
3+
import static org.mockito.ArgumentMatchers.anyString;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.when;
6+
7+
import org.junit.jupiter.api.BeforeEach;
8+
import org.junit.jupiter.api.Test;
9+
import org.mockito.Mockito;
10+
import org.springframework.ai.chat.client.ChatClient;
11+
import org.springframework.test.web.servlet.MockMvc;
12+
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
13+
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
14+
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
15+
16+
public class CalculatorControllerTest {
17+
18+
private MockMvc mockMvc;
19+
private ChatClient chatClient;
20+
21+
@BeforeEach
22+
void setUp() {
23+
chatClient = mock(ChatClient.class, Mockito.RETURNS_DEEP_STUBS);
24+
CalculatorController controller = new CalculatorController(chatClient);
25+
mockMvc = MockMvcBuilders.standaloneSetup(controller)
26+
.build();
27+
}
28+
29+
@Test
30+
void givenValidExpression_whenCalculateEndpointCalled_thenReturnsExpectedResult() throws Exception {
31+
when(chatClient.prompt()
32+
.user(anyString())
33+
.call()
34+
.content()).thenReturn("42");
35+
mockMvc.perform(MockMvcRequestBuilders.get("/calculate")
36+
.param("expression", "40 + 2"))
37+
.andExpect(MockMvcResultMatchers.status()
38+
.isOk())
39+
.andExpect(MockMvcResultMatchers.content()
40+
.string("42"));
41+
}
42+
43+
@Test
44+
void givenHomeRequest_whenHomeEndpointCalled_thenReturnsHtmlWithTitle() throws Exception {
45+
mockMvc.perform(MockMvcRequestBuilders.get("/"))
46+
.andExpect(MockMvcResultMatchers.status()
47+
.isOk())
48+
.andExpect(MockMvcResultMatchers.content()
49+
.string(org.hamcrest.Matchers.containsString("MCP Calculator with OAuth2")));
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.baeldung.mcp.oauth2authorizationserver.config;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
5+
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
7+
import org.junit.jupiter.api.Test;
8+
import org.springframework.boot.test.context.SpringBootTest;
9+
import org.springframework.context.ApplicationContext;
10+
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
11+
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
12+
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
13+
import org.springframework.security.web.SecurityFilterChain;
14+
15+
@SpringBootTest(classes = AuthorizationServerConfig.class)
16+
class AuthorizationServerConfigTest {
17+
18+
private final ApplicationContext context;
19+
20+
private final RegisteredClientRepository registeredClientRepository;
21+
22+
private final AuthorizationServerSettings authorizationServerSettings;
23+
24+
public AuthorizationServerConfigTest(ApplicationContext context, RegisteredClientRepository registeredClientRepository,
25+
AuthorizationServerSettings authorizationServerSettings) {
26+
this.authorizationServerSettings = authorizationServerSettings;
27+
this.registeredClientRepository = registeredClientRepository;
28+
this.context = context;
29+
}
30+
31+
@Test
32+
void givenContext_whenLoaded_thenSecurityFilterChainsPresent() {
33+
SecurityFilterChain chain1 = (SecurityFilterChain) context.getBean("authorizationServerSecurityFilterChain");
34+
SecurityFilterChain chain2 = (SecurityFilterChain) context.getBean("defaultSecurityFilterChain");
35+
assertNotNull(chain1);
36+
assertNotNull(chain2);
37+
}
38+
39+
@Test
40+
void givenRegisteredClientRepository_whenQueried_thenContainsExpectedClient() {
41+
RegisteredClient client = registeredClientRepository.findByClientId("mcp-client");
42+
assertNotNull(client);
43+
assertEquals("mcp-client", client.getClientId());
44+
assertTrue(client.getClientAuthenticationMethods()
45+
.stream()
46+
.anyMatch(m -> m.getValue()
47+
.equals("client_secret_basic")));
48+
assertTrue(client.getAuthorizationGrantTypes()
49+
.stream()
50+
.anyMatch(g -> g.getValue()
51+
.equals("authorization_code")));
52+
assertTrue(client.getScopes()
53+
.contains("mcp.read"));
54+
assertTrue(client.getScopes()
55+
.contains("mcp.write"));
56+
}
57+
58+
@Test
59+
void givenAuthorizationServerSettings_whenLoaded_thenIssuerIsCorrect() {
60+
assertEquals("http://localhost:9000", authorizationServerSettings.getIssuer());
61+
}
62+
}
63+

spring-ai-modules/spring-ai-mcp/mcp-spring/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<groupId>com.baeldung</groupId>
1111
<artifactId>spring-ai-mcp</artifactId>
1212
<version>0.0.1</version>
13+
<relativePath>../pom.xml</relativePath>
1314
</parent>
1415

1516
<modules>

spring-ai-modules/spring-ai-mcp/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<groupId>com.baeldung</groupId>
1414
<artifactId>spring-ai-mcp</artifactId>
1515
<version>0.0.1</version>
16+
<packaging>pom</packaging>
1617
<name>spring-ai-mcp</name>
1718

1819
<dependencies>

0 commit comments

Comments
 (0)