private void HandleSseWithInvalidRetryResponse()

in DarabonbaUnitTests/Utils/StreamUtilsTest.cs [138:171]


        private void HandleSseWithInvalidRetryResponse(HttpListenerResponse response)
        {
            int count = 0;
            Timer timer = null;
            var cts = new CancellationTokenSource();
            var token = cts.Token;
            timer = new Timer(_ =>
            {
                if (token.IsCancellationRequested)
                {
                    return;
                }
                
                if (count >= 5)
                {
                    cts.Cancel();
                    timer.Dispose();
                    response.Close();
                    return;
                }

                try
                {
                    byte[] buffer = Encoding.UTF8.GetBytes(string.Format("data: {0}\nevent:flow\nid:sse-test\nretry: abc\n\n", JsonConvert.SerializeObject(new { count = count })));
                    response.OutputStream.Write(buffer, 0, buffer.Length);
                    response.OutputStream.Flush();
                    count++;
                }
                catch (ObjectDisposedException ex)
                {
                    Console.WriteLine($"ObjectDisposedException caught: {ex.Message}");
                }
            }, null, 0, 100);
        }