From bb530bd70e07320f7290b959db7c08c62da95aa0 Mon Sep 17 00:00:00 2001
From: Klaus Fischer <klaus.fischer@eloware.com>
Date: Wed, 2 Oct 2024 14:56:03 +0200
Subject: [PATCH] fix: added offset and limit to case request

---
 FitConnect/FitConnectClient.cs                | 10 +++++--
 FitConnect/Interfaces/ISender.cs              |  3 +-
 .../Interfaces/Subscriber/ISubscriber.cs      |  4 ++-
 Tests/E2ETest/ReplyChannelTest.cs             | 28 ++++++++-----------
 4 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/FitConnect/FitConnectClient.cs b/FitConnect/FitConnectClient.cs
index 6a64c7fb..85267bfd 100644
--- a/FitConnect/FitConnectClient.cs
+++ b/FitConnect/FitConnectClient.cs
@@ -285,8 +285,12 @@ public abstract class FitConnectClient : IFitConnectClient {
         Logger?.LogInformation("Submission completed {Status}", result);
     }
 
-    public async Task<IEnumerable<Case>> GetCases() {
-        var dto = await CasesService.GetCases();
+    public async Task<CaseDto?> GetCasesResult(int offset = 0, int limit = 500) {
+        return await CasesService.GetCases(offset, limit);
+    }
+
+    public async Task<IEnumerable<Case>> GetCases(int offset = 0, int limit = 500) {
+        var dto = await GetCasesResult(offset, limit);
         return dto?.Cases ?? new List<Case>();
     }
 
@@ -316,4 +320,4 @@ public static class FitConnectClientExtensions {
         RestCallService.Proxy = proxy;
         return caller;
     }
-}
+}
\ No newline at end of file
diff --git a/FitConnect/Interfaces/ISender.cs b/FitConnect/Interfaces/ISender.cs
index 993e31a5..56d6f9be 100644
--- a/FitConnect/Interfaces/ISender.cs
+++ b/FitConnect/Interfaces/ISender.cs
@@ -47,5 +47,6 @@ public interface ISender : IFitConnectClient {
     Task AcceptReplyAsync(IReceivedReply reply, params Problems[] problems);
     Task RejectReplyAsync(IReceivedReply reply, params Problems[] problems);
     Task RejectReplyAsync(Guid reply, params Problems[] problems);
-    Task<IEnumerable<Case>> GetCases();
+    Task<IEnumerable<Case>> GetCases(int offset = 0, int limit = 500);
+    Task<CaseDto> GetCasesResult(int offset = 0, int limit = 500);
 }
diff --git a/FitConnect/Interfaces/Subscriber/ISubscriber.cs b/FitConnect/Interfaces/Subscriber/ISubscriber.cs
index dbcce3ef..9d0578cd 100644
--- a/FitConnect/Interfaces/Subscriber/ISubscriber.cs
+++ b/FitConnect/Interfaces/Subscriber/ISubscriber.cs
@@ -1,5 +1,6 @@
 using FitConnect.Models;
 using FitConnect.Models.v1.Api;
+using FitConnect.Services.Interfaces;
 using FitConnect.Services.Models.v1.Submission;
 
 namespace FitConnect.Interfaces.Subscriber;
@@ -58,7 +59,8 @@ public interface ISubscriber : IFitConnectClient {
     public Task<SentSubmission> SendReplyAsync(SendableReply replySubmission);
 
     Task<AvailableRepliesDto> GetReplies(int offset, int limit);
-    Task<IEnumerable<Case>> GetCases();
+    Task<IEnumerable<Case>> GetCases(int offset = 0 , int limit = 500);
+    Task<CaseDto> GetCasesResult(int offset = 0 , int limit = 500);
 }
 
 public record Case(Guid CaseId, Guid DestinationId);
diff --git a/Tests/E2ETest/ReplyChannelTest.cs b/Tests/E2ETest/ReplyChannelTest.cs
index 30a7da5d..df4a7778 100644
--- a/Tests/E2ETest/ReplyChannelTest.cs
+++ b/Tests/E2ETest/ReplyChannelTest.cs
@@ -357,38 +357,34 @@ public class ReplyChannelTest : EndToEndTestBase {
 
     [Test]
     [Order(63)]
-    [Ignore("Was just used for debugging")]
     public void T063_List_Cases() {
         var sender0Cases = ClientFactory.CreateSenderClient(_environment,
             _senderConfigs[0].ClientId, _senderConfigs[0].ClientSecret,
             Logger
-        ).GetCases().Result.ToList();
-        sender0Cases.Should().NotBeNullOrEmpty();
-        sender0Cases.Count.Should().BeGreaterOrEqualTo(1);
+        ).GetCasesResult(0,1).Result;
+        sender0Cases.TotalCount.Should().BeGreaterOrEqualTo(1);
 
 
         var sender1Cases = ClientFactory.CreateSenderClient(_environment,
             _senderConfigs[1].ClientId, _senderConfigs[1].ClientSecret,
             Logger
-        ).GetCases().Result.ToList();
-        sender1Cases.Should().NotBeNullOrEmpty();
-        sender1Cases.Count.Should().BeGreaterOrEqualTo(1);
+        ).GetCasesResult(0,1).Result;
+        sender1Cases.TotalCount.Should().BeGreaterOrEqualTo(1);
 
 
-        var subscriberCases = Subscriber.GetCases().Result.ToList();
-        subscriberCases.Should().NotBeNullOrEmpty();
-        subscriberCases.Count.Should().BeGreaterOrEqualTo(1);
+        var subscriberCases = Subscriber.GetCasesResult(0,1).Result;
+        subscriberCases.TotalCount.Should().BeGreaterOrEqualTo(1);
 
-        Console.WriteLine($"Found {sender0Cases.Count,5} cases for sender {_senderConfigs[0].ClientId}");
-        Console.WriteLine($"Found {sender1Cases.Count,5} cases for sender {_senderConfigs[1].ClientId}");
-        Console.WriteLine($"Found {subscriberCases.Count,5} cases for subscriber");
+        Console.WriteLine($"Found {sender0Cases.TotalCount,5} cases for sender {_senderConfigs[0].ClientId}");
+        Console.WriteLine($"Found {sender1Cases.TotalCount,5} cases for sender {_senderConfigs[1].ClientId}");
+        Console.WriteLine($"Found {subscriberCases.TotalCount,5} cases for subscriber");
 
 
         subscriberCases.Count.Should()
-            .NotBe(sender0Cases.Count, "Sender 0 should have less cases than the subscriber has");
+            .NotBe(sender0Cases.TotalCount, "Sender 0 should have less cases than the subscriber has");
         subscriberCases.Count.Should()
-            .NotBe(sender1Cases.Count, "Sender 1 should have less cases than the subscriber has");
-        sender0Cases.Count.Should().NotBe(sender1Cases.Count, "The sender have to be different");
+            .NotBe(sender1Cases.TotalCount, "Sender 1 should have less cases than the subscriber has");
+        sender0Cases.Count.Should().NotBe(sender1Cases.TotalCount, "The sender have to be different");
     }
 
     [Test]
-- 
GitLab