From b72f923ca97d7db715de98a3ab1f9b2b80944243 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 09:34:31 +0000 Subject: [PATCH 1/2] Initial plan From 93cdc56691fa3ee79354bdd272aaf1c20dd159bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Feb 2026 09:36:58 +0000 Subject: [PATCH 2/2] Add test coverage for deleteAssignment methods Co-authored-by: sebastianchristopher <40264653+sebastianchristopher@users.noreply.github.com> --- .../assignment/AssignmentWriterUTest.java | 63 +++++++++++++++++++ .../assignment/DeletedAssignment.json | 40 ++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 src/test/java/edu/ksu/canvas/tests/assignment/AssignmentWriterUTest.java create mode 100644 src/test/resources/SampleJson/assignment/DeletedAssignment.json diff --git a/src/test/java/edu/ksu/canvas/tests/assignment/AssignmentWriterUTest.java b/src/test/java/edu/ksu/canvas/tests/assignment/AssignmentWriterUTest.java new file mode 100644 index 00000000..99cedb0c --- /dev/null +++ b/src/test/java/edu/ksu/canvas/tests/assignment/AssignmentWriterUTest.java @@ -0,0 +1,63 @@ +package edu.ksu.canvas.tests.assignment; + +import edu.ksu.canvas.CanvasTestBase; +import edu.ksu.canvas.impl.AssignmentImpl; +import edu.ksu.canvas.interfaces.AssignmentWriter; +import edu.ksu.canvas.model.assignment.Assignment; +import edu.ksu.canvas.net.FakeRestClient; +import junit.framework.AssertionFailedError; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.IOException; +import java.util.Optional; + +public class AssignmentWriterUTest extends CanvasTestBase { + + @Autowired + private FakeRestClient fakeRestClient; + private AssignmentWriter assignmentWriter; + + @Before + public void setupData() { + assignmentWriter = new AssignmentImpl(baseUrl, apiVersion, SOME_OAUTH_TOKEN, fakeRestClient, SOME_CONNECT_TIMEOUT, SOME_READ_TIMEOUT, DEFAULT_PAGINATION_PAGE_SIZE, false); + } + + @Test + public void testDeleteAssignmentWithIntegerId() throws IOException { + String someCourseId = "1234"; + Integer someAssignmentId = 123; + String url = baseUrl + "/api/v1/courses/" + someCourseId + "/assignments/" + someAssignmentId; + fakeRestClient.addSuccessResponse(url, "SampleJson/assignment/DeletedAssignment.json"); + Optional deletedAssignmentOpt = assignmentWriter.deleteAssignment(someCourseId, someAssignmentId); + Assignment deletedAssignment = deletedAssignmentOpt.orElseThrow(AssertionFailedError::new); + Assert.assertEquals("Assignment1", deletedAssignment.getName()); + Assert.assertEquals(Integer.valueOf(1), deletedAssignment.getId()); + } + + @Test + public void testDeleteAssignmentWithStringId() throws IOException { + String someCourseId = "1234"; + String someAssignmentId = "lti_context_id:ab84f579-4442-4d4a-acd8-85c5ec6fd2b6"; + String url = baseUrl + "/api/v1/courses/" + someCourseId + "/assignments/" + someAssignmentId; + fakeRestClient.addSuccessResponse(url, "SampleJson/assignment/DeletedAssignment.json"); + Optional deletedAssignmentOpt = assignmentWriter.deleteAssignment(someCourseId, someAssignmentId); + Assignment deletedAssignment = deletedAssignmentOpt.orElseThrow(AssertionFailedError::new); + Assert.assertEquals("Assignment1", deletedAssignment.getName()); + Assert.assertEquals(Integer.valueOf(1), deletedAssignment.getId()); + } + + @Test + public void testDeleteAssignmentWithNumericStringId() throws IOException { + String someCourseId = "1234"; + String someAssignmentId = "456"; + String url = baseUrl + "/api/v1/courses/" + someCourseId + "/assignments/" + someAssignmentId; + fakeRestClient.addSuccessResponse(url, "SampleJson/assignment/DeletedAssignment.json"); + Optional deletedAssignmentOpt = assignmentWriter.deleteAssignment(someCourseId, someAssignmentId); + Assignment deletedAssignment = deletedAssignmentOpt.orElseThrow(AssertionFailedError::new); + Assert.assertEquals("Assignment1", deletedAssignment.getName()); + Assert.assertEquals(Integer.valueOf(1), deletedAssignment.getId()); + } +} diff --git a/src/test/resources/SampleJson/assignment/DeletedAssignment.json b/src/test/resources/SampleJson/assignment/DeletedAssignment.json new file mode 100644 index 00000000..17eab506 --- /dev/null +++ b/src/test/resources/SampleJson/assignment/DeletedAssignment.json @@ -0,0 +1,40 @@ +{ + "id": 1, + "description": "", + "due_at": null, + "unlock_at": null, + "lock_at": null, + "points_possible": 30, + "grading_type": "points", + "assignment_group_id": 1967, + "grading_standard_id": null, + "created_at": "2016-10-28T19:37:50Z", + "updated_at": "2016-10-28T19:37:50Z", + "peer_reviews": false, + "automatic_peer_reviews": false, + "position": 1, + "grade_group_students_individually": false, + "anonymous_peer_reviews": false, + "group_category_id": null, + "post_to_sis": false, + "moderated_grading": false, + "omit_from_final_grade": false, + "course_id": 1146, + "name": "Assignment1", + "submission_types": [ + "none" + ], + "has_submitted_submissions": false, + "muted": false, + "html_url": "https://canvas.example.edu/courses/1146/assignments/316000", + "has_overrides": false, + "needs_grading_count": 0, + "integration_id": null, + "integration_data": {}, + "published": false, + "unpublishable": true, + "only_visible_to_overrides": false, + "locked_for_user": false, + "submissions_download_url": "https://canvas.example.edu/courses/1146/assignments/316000/submissions?zip=1", + "workflow_state": "deleted" +}