diff --git a/core/src/test/java/se/su/dsv/scipro/report/GradingReportServiceImplIntegrationTest.java b/core/src/test/java/se/su/dsv/scipro/report/GradingReportServiceImplIntegrationTest.java
index 597396bbea..63808671e3 100644
--- a/core/src/test/java/se/su/dsv/scipro/report/GradingReportServiceImplIntegrationTest.java
+++ b/core/src/test/java/se/su/dsv/scipro/report/GradingReportServiceImplIntegrationTest.java
@@ -6,7 +6,11 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import com.google.common.eventbus.EventBus;
+import com.sun.net.httpserver.HttpServer;
 import jakarta.inject.Inject;
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.Month;
 import java.util.*;
@@ -15,6 +19,9 @@ import org.junit.jupiter.api.Test;
 import se.su.dsv.scipro.finalseminar.FinalSeminar;
 import se.su.dsv.scipro.finalseminar.FinalSeminarOpposition;
 import se.su.dsv.scipro.finalseminar.OppositionApprovedEvent;
+import se.su.dsv.scipro.grading.GetGradeError;
+import se.su.dsv.scipro.grading.GradingServiceImpl;
+import se.su.dsv.scipro.grading.Result;
 import se.su.dsv.scipro.project.Project;
 import se.su.dsv.scipro.security.auth.roles.Roles;
 import se.su.dsv.scipro.system.DegreeType;
@@ -149,6 +156,44 @@ public class GradingReportServiceImplIntegrationTest extends IntegrationTest {
         assertNull(oppositionCriterion.getFeedback());
     }
 
+    @Test
+    public void test_json_deserialization() throws IOException {
+        String json =
+            """
+            {
+                "grade": "A",
+                "reported": "2021-01-01"
+            }
+            """;
+        HttpServer httpServer = startHttpServerWithJsonResponse(json);
+
+        int port = httpServer.getAddress().getPort();
+
+        GradingServiceImpl gradingService = new GradingServiceImpl("http://localhost:" + port);
+        Either<GetGradeError, Optional<Result>> result = gradingService.getResult("token", 1, 2, 3);
+
+        Optional<Result> right = result.right();
+        assertTrue(right.isPresent());
+        assertEquals(LocalDate.of(2021, 1, 1), right.get().reported());
+
+        httpServer.stop(0);
+    }
+
+    private static HttpServer startHttpServerWithJsonResponse(String json) throws IOException {
+        HttpServer httpServer = HttpServer.create();
+        httpServer.createContext("/", exchange -> {
+            try (exchange) {
+                byte[] response = json.getBytes(StandardCharsets.UTF_8);
+                exchange.getResponseHeaders().add("Content-Type", "application/json");
+                exchange.sendResponseHeaders(200, response.length);
+                exchange.getResponseBody().write(response);
+            }
+        });
+        httpServer.bind(new InetSocketAddress("localhost", 0), 0);
+        httpServer.start();
+        return httpServer;
+    }
+
     private void addOppositionCriterion() {
         gradingReportTemplate = createOppositionCriteria(gradingReportTemplate, 2);
         gradingReport = createGradingReport(project, student);