Update SimpleSessionNotifier for RESET_STREAM_AT frames.

This is test code.

PiperOrigin-RevId: 687058267
diff --git a/quiche/quic/test_tools/simple_session_notifier.cc b/quiche/quic/test_tools/simple_session_notifier.cc
index 7a2e705..585c78b 100644
--- a/quiche/quic/test_tools/simple_session_notifier.cc
+++ b/quiche/quic/test_tools/simple_session_notifier.cc
@@ -4,6 +4,10 @@
 
 #include "quiche/quic/test_tools/simple_session_notifier.h"
 
+#include "quiche/quic/core/frames/quic_frame.h"
+#include "quiche/quic/core/frames/quic_reset_stream_at_frame.h"
+#include "quiche/quic/core/quic_error_codes.h"
+#include "quiche/quic/core/quic_types.h"
 #include "quiche/quic/core/quic_utils.h"
 #include "quiche/quic/platform/api/quic_logging.h"
 #include "quiche/quic/test_tools/quic_test_utils.h"
@@ -113,6 +117,25 @@
   WriteBufferedControlFrames();
 }
 
+void SimpleSessionNotifier::WriteOrBufferResetStreamAt(
+    QuicStreamId id, QuicRstStreamErrorCode error,
+    QuicStreamOffset bytes_written, QuicStreamOffset reliable_size) {
+  QUIC_DVLOG(1) << "Writing RESET_STREAM_AT_FRAME";
+  const bool had_buffered_data =
+      HasBufferedStreamData() || HasBufferedControlFrames();
+  control_frames_.emplace_back(QuicFrame(new QuicResetStreamAtFrame(
+      ++last_control_frame_id_, id, error, bytes_written, reliable_size)));
+  if (error != QUIC_STREAM_NO_ERROR) {
+    // Delete stream to avoid retransmissions.
+    stream_map_.erase(id);
+  }
+  if (had_buffered_data) {
+    QUIC_DLOG(WARNING) << "Connection is write blocked";
+    return;
+  }
+  WriteBufferedControlFrames();
+}
+
 void SimpleSessionNotifier::WriteOrBufferWindowUpate(
     QuicStreamId id, QuicStreamOffset byte_offset) {
   QUIC_DVLOG(1) << "Writing WINDOW_UPDATE";
diff --git a/quiche/quic/test_tools/simple_session_notifier.h b/quiche/quic/test_tools/simple_session_notifier.h
index f1af586..a4175f0 100644
--- a/quiche/quic/test_tools/simple_session_notifier.h
+++ b/quiche/quic/test_tools/simple_session_notifier.h
@@ -6,7 +6,9 @@
 #define QUICHE_QUIC_TEST_TOOLS_SIMPLE_SESSION_NOTIFIER_H_
 
 #include "absl/container/flat_hash_map.h"
+#include "quiche/quic/core/quic_error_codes.h"
 #include "quiche/quic/core/quic_interval_set.h"
+#include "quiche/quic/core/quic_types.h"
 #include "quiche/quic/core/session_notifier_interface.h"
 #include "quiche/quic/platform/api/quic_test.h"
 #include "quiche/common/quiche_circular_deque.h"
@@ -36,6 +38,11 @@
   void WriteOrBufferRstStream(QuicStreamId id, QuicRstStreamErrorCode error,
                               QuicStreamOffset bytes_written);
 
+  // Tries to write RESET_STREAM_AT_FRAME.
+  void WriteOrBufferResetStreamAt(QuicStreamId id, QuicRstStreamErrorCode error,
+                                  QuicStreamOffset bytes_written,
+                                  QuicStreamOffset reliable_size);
+
   // Tries to write WINDOW_UPDATE.
   void WriteOrBufferWindowUpate(QuicStreamId id, QuicStreamOffset byte_offset);