From 8eef285203656579a133ee789f2de71ea83e7954 Mon Sep 17 00:00:00 2001 From: Nirzara Ghure <113231114+nirzaraghure@users.noreply.github.com> Date: Mon, 13 Jul 2026 14:41:05 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20AppGenius:=20AI-generated=20code?= =?UTF-8?q?=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PaymentController.test.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/main/java/com/nirzara/paymenttracker/controller/PaymentController.test.java diff --git a/src/main/java/com/nirzara/paymenttracker/controller/PaymentController.test.java b/src/main/java/com/nirzara/paymenttracker/controller/PaymentController.test.java new file mode 100644 index 0000000..1de5f18 --- /dev/null +++ b/src/main/java/com/nirzara/paymenttracker/controller/PaymentController.test.java @@ -0,0 +1,51 @@ +package com.nirzara.paymenttracker.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.nirzara.paymenttracker.model.Payment; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; + +@ExtendWith(MockitoExtension.class) +public class PaymentControllerTest { + + @Mock + private PaymentService paymentService; + + @InjectMocks + private PaymentController paymentController; + + private MockMvc mockMvc; + + private ObjectMapper objectMapper = new ObjectMapper(); + + @Test + public void testAddPayment_InvalidPayment() throws Exception { + // Arrange + Payment payment = new Payment(); + payment.setAmount(-10.0); + payment.setDescription("Invalid Payment"); + String json = objectMapper.writeValueAsString(payment); + + when(paymentService.addPayment(payment)).thenThrow(new IllegalArgumentException("Invalid payment amount")); + + mockMvc = MockMvcBuilders.standaloneSetup(paymentController).build(); + + // Act & Assert + mockMvc.perform(post("/payments") + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andExpect(status().isBadRequest()); + } +} \ No newline at end of file