This commit is contained in:
Anupama Natarajan 2025-05-09 19:04:37 +00:00 committed by GitHub
commit 31aee8c8e6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 52 additions and 0 deletions

View file

@ -163,3 +163,13 @@ For additional details, please refer to the blog post [Hello DCO, Goodbye CLA: S
## License ## License
The Spring PetClinic sample application is released under version 2.0 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0). The Spring PetClinic sample application is released under version 2.0 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0).
### User Story
As a pet clinic administrator, I want to add a `/greetings` API endpoint that returns a personalized welcome message so that I can display it on the homepage.
Acceptance Criteria:
- Endpoint: `/api/greetings`
- Method: GET
- Optional query param: `name`
- Returns: "Welcome to the PetClinic, <name>!" or "Welcome to the PetClinic!" if no name is passed.

View file

@ -0,0 +1,13 @@
@RestController
@RequestMapping("/api")
public class GreetingController {
@GetMapping("/greetings")
public String greet(@RequestParam(required = false) String name) {
if (name == null || name.isEmpty()) {
return "Welcome to the PetClinic!";
} else {
return "Welcome to the PetClinic, " + name + "!";
}
}
}

View file

@ -0,0 +1,29 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@WebMvcTest(GreetingController.class)
class GreetingControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void shouldReturnDefaultGreetingWhenNameIsNotProvided() throws Exception {
mockMvc.perform(get("/api/greetings"))
.andExpect(status().isOk())
.andExpect(content().string("Welcome to the PetClinic!"));
}
@Test
void shouldReturnPersonalizedGreetingWhenNameIsProvided() throws Exception {
mockMvc.perform(get("/api/greetings").param("name", "John"))
.andExpect(status().isOk())
.andExpect(content().string("Welcome to the PetClinic, John!"));
}
}