Add test::FakeEncodedFrame for testing

Change-Id: I1c8fabe5caf2c723487ec1cd71a379e922026a9d
Bug: webrtc:13996
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260001
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36654}
diff --git a/modules/video_coding/frame_buffer3_unittest.cc b/modules/video_coding/frame_buffer3_unittest.cc
index 27a25f2..39fab88 100644
--- a/modules/video_coding/frame_buffer3_unittest.cc
+++ b/modules/video_coding/frame_buffer3_unittest.cc
@@ -12,6 +12,7 @@
 #include <vector>
 
 #include "api/video/encoded_frame.h"
+#include "test/fake_encoded_frame.h"
 #include "test/field_trial.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
@@ -29,67 +30,19 @@
   return Matches(Eq(id))(arg->Id());
 }
 
-class FakeEncodedFrame : public EncodedFrame {
- public:
-  int64_t ReceivedTime() const override { return 0; }
-  int64_t RenderTime() const override { return 0; }
-};
-
-class Builder {
- public:
-  Builder& Time(uint32_t rtp_timestamp) {
-    rtp_timestamp_ = rtp_timestamp;
-    return *this;
-  }
-  Builder& Id(int64_t frame_id) {
-    frame_id_ = frame_id;
-    return *this;
-  }
-  Builder& AsLast() {
-    last_spatial_layer_ = true;
-    return *this;
-  }
-  Builder& Refs(const std::vector<int64_t>& references) {
-    references_ = references;
-    return *this;
-  }
-
-  std::unique_ptr<FakeEncodedFrame> Build() {
-    RTC_CHECK_LE(references_.size(), EncodedFrame::kMaxFrameReferences);
-    RTC_CHECK(rtp_timestamp_.has_value());
-    RTC_CHECK(frame_id_.has_value());
-
-    auto frame = std::make_unique<FakeEncodedFrame>();
-    frame->SetTimestamp(*rtp_timestamp_);
-    frame->SetId(*frame_id_);
-    frame->is_last_spatial_layer = last_spatial_layer_;
-
-    for (int64_t ref : references_) {
-      frame->references[frame->num_references] = ref;
-      frame->num_references++;
-    }
-
-    return frame;
-  }
-
- private:
-  absl::optional<uint32_t> rtp_timestamp_;
-  absl::optional<int64_t> frame_id_;
-  bool last_spatial_layer_ = false;
-  std::vector<int64_t> references_;
-};
-
 TEST(FrameBuffer3Test, RejectInvalidRefs) {
   test::ScopedKeyValueConfig field_trials;
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
   // Ref must be less than the id of this frame.
-  buffer.InsertFrame(Builder().Time(0).Id(0).Refs({0}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(0).Id(0).Refs({0}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(absl::nullopt));
 
   // Duplicate ids are also invalid.
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1, 1}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1, 1}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(1));
 }
 
@@ -100,11 +53,12 @@
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(absl::nullopt));
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(absl::nullopt));
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(1));
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(absl::nullopt));
 
-  buffer.InsertFrame(Builder().Time(10).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(10).Id(2).Refs({1}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(2));
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(2));
 }
@@ -114,11 +68,13 @@
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({2}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(1));
 
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(3));
 }
 
@@ -127,9 +83,10 @@
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).Build());
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(absl::nullopt));
-  buffer.InsertFrame(Builder().Time(10).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(10).Id(2).Refs({1}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(2));
 }
 
@@ -138,12 +95,14 @@
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).Build());
-  buffer.InsertFrame(Builder().Time(20).Id(3).Refs({1}).Build());
-  buffer.InsertFrame(Builder().Time(20).Id(4).Refs({2, 3}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(20).Id(3).Refs({1}).Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(4).Refs({2, 3}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(absl::nullopt));
 
-  buffer.InsertFrame(Builder().Time(10).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(10).Id(2).Refs({1}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousTemporalUnitFrameId(), Eq(4));
 }
 
@@ -154,7 +113,7 @@
 
   EXPECT_THAT(buffer.NextDecodableTemporalUnitRtpTimestamp(),
               Eq(absl::nullopt));
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
   EXPECT_THAT(buffer.NextDecodableTemporalUnitRtpTimestamp(), Eq(10U));
 }
 
@@ -163,9 +122,10 @@
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(20).Id(2).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({2}).AsLast().Build());
   EXPECT_THAT(buffer.NextDecodableTemporalUnitRtpTimestamp(), Eq(10U));
 
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
@@ -183,9 +143,11 @@
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({1}).AsLast().Build());
   EXPECT_THAT(buffer.LastDecodableTemporalUnitRtpTimestamp(), Eq(10U));
 
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
@@ -198,10 +160,10 @@
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
 
-  buffer.InsertFrame(Builder().Time(20).Id(2).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(20).Id(2).AsLast().Build());
   EXPECT_THAT(buffer.NextDecodableTemporalUnitRtpTimestamp(), Eq(20U));
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
   EXPECT_THAT(buffer.NextDecodableTemporalUnitRtpTimestamp(), Eq(10U));
 }
 
@@ -209,18 +171,23 @@
   test::ScopedKeyValueConfig field_trials;
   FrameBuffer buffer(/*max_frame_slots=*/5, /*max_decode_history=*/10,
                      field_trials);
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({2}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(40).Id(4).Refs({3}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(50).Id(5).Refs({4}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(40).Id(4).Refs({3}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(50).Id(5).Refs({4}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(5));
 
   // Frame buffer is full
-  buffer.InsertFrame(Builder().Time(60).Id(6).Refs({5}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(60).Id(6).Refs({5}).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(5));
 
-  buffer.InsertFrame(Builder().Time(70).Id(7).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(70).Id(7).AsLast().Build());
   EXPECT_THAT(buffer.LastContinuousFrameId(), Eq(7));
 }
 
@@ -228,9 +195,11 @@
   test::ScopedKeyValueConfig field_trials;
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({1}).AsLast().Build());
 
   buffer.ExtractNextDecodableTemporalUnit();
   buffer.DropNextDecodableTemporalUnit();
@@ -242,15 +211,18 @@
   test::ScopedKeyValueConfig field_trials;
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
 
   buffer.ExtractNextDecodableTemporalUnit();
   buffer.ExtractNextDecodableTemporalUnit();
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({1}).AsLast().Build());
 
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(3)));
@@ -260,13 +232,15 @@
   test::ScopedKeyValueConfig field_trials;
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
-  buffer.InsertFrame(Builder().Time(10).Id(1).Build());
-  buffer.InsertFrame(Builder().Time(10).Id(2).Refs({1}).Build());
-  buffer.InsertFrame(Builder().Time(10).Id(3).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(2).Refs({1}).Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(10).Id(3).Refs({2}).AsLast().Build());
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(1), FrameWithId(2), FrameWithId(3)));
 
-  buffer.InsertFrame(Builder().Time(20).Id(4).Refs({3}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(4).Refs({3}).AsLast().Build());
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(4)));
 }
@@ -275,11 +249,15 @@
   test::ScopedKeyValueConfig field_trials;
   FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                      field_trials);
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(30).Id(3).Refs({1}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(40).Id(4).Refs({2}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(50).Id(5).Refs({3}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(30).Id(3).Refs({1}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(40).Id(4).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(50).Id(5).Refs({3}).AsLast().Build());
 
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(1)));
@@ -292,12 +270,15 @@
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(5)));
 
-  buffer.InsertFrame(Builder().Time(70).Id(7).Refs({5}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(70).Id(7).Refs({5}).AsLast().Build());
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(7)));
-  buffer.InsertFrame(Builder().Time(60).Id(6).Refs({4}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(60).Id(6).Refs({4}).AsLast().Build());
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(), IsEmpty());
-  buffer.InsertFrame(Builder().Time(90).Id(9).Refs({7}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(90).Id(9).Refs({7}).AsLast().Build());
   EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
               ElementsAre(FrameWithId(9)));
 }
@@ -309,10 +290,12 @@
     FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                        field_trials);
 
-    buffer.InsertFrame(Builder().Time(20).Id(3).AsLast().Build());
+    buffer.InsertFrame(
+        test::FakeFrameBuilder().Time(20).Id(3).AsLast().Build());
     EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
                 ElementsAre(FrameWithId(3)));
-    buffer.InsertFrame(Builder().Time(30).Id(2).AsLast().Build());
+    buffer.InsertFrame(
+        test::FakeFrameBuilder().Time(30).Id(2).AsLast().Build());
     EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(), IsEmpty());
   }
 
@@ -322,12 +305,15 @@
     FrameBuffer buffer(/*max_frame_slots=*/10, /*max_decode_history=*/100,
                        field_trials);
 
-    buffer.InsertFrame(Builder().Time(20).Id(3).AsLast().Build());
+    buffer.InsertFrame(
+        test::FakeFrameBuilder().Time(20).Id(3).AsLast().Build());
     EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
                 ElementsAre(FrameWithId(3)));
-    buffer.InsertFrame(Builder().Time(30).Id(2).Refs({1}).AsLast().Build());
+    buffer.InsertFrame(
+        test::FakeFrameBuilder().Time(30).Id(2).Refs({1}).AsLast().Build());
     EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(), IsEmpty());
-    buffer.InsertFrame(Builder().Time(40).Id(1).AsLast().Build());
+    buffer.InsertFrame(
+        test::FakeFrameBuilder().Time(40).Id(1).AsLast().Build());
     EXPECT_THAT(buffer.ExtractNextDecodableTemporalUnit(),
                 ElementsAre(FrameWithId(1)));
   }
@@ -339,18 +325,20 @@
                      field_trials);
   EXPECT_THAT(buffer.GetTotalNumberOfContinuousTemporalUnits(), Eq(0));
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
   EXPECT_THAT(buffer.GetTotalNumberOfContinuousTemporalUnits(), Eq(1));
 
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).Build());
   EXPECT_THAT(buffer.GetTotalNumberOfContinuousTemporalUnits(), Eq(1));
 
-  buffer.InsertFrame(Builder().Time(40).Id(4).Refs({2}).Build());
-  buffer.InsertFrame(Builder().Time(40).Id(5).Refs({3, 4}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(40).Id(4).Refs({2}).Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(40).Id(5).Refs({3, 4}).AsLast().Build());
   EXPECT_THAT(buffer.GetTotalNumberOfContinuousTemporalUnits(), Eq(1));
 
   // Reordered
-  buffer.InsertFrame(Builder().Time(20).Id(3).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(3).Refs({2}).AsLast().Build());
   EXPECT_THAT(buffer.GetTotalNumberOfContinuousTemporalUnits(), Eq(3));
 }
 
@@ -360,11 +348,13 @@
                      field_trials);
   EXPECT_THAT(buffer.GetTotalNumberOfDroppedFrames(), Eq(0));
 
-  buffer.InsertFrame(Builder().Time(10).Id(1).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(20).Id(2).Refs({1}).Build());
-  buffer.InsertFrame(Builder().Time(20).Id(3).Refs({2}).AsLast().Build());
-  buffer.InsertFrame(Builder().Time(40).Id(4).Refs({1}).Build());
-  buffer.InsertFrame(Builder().Time(40).Id(5).Refs({4}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(10).Id(1).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(20).Id(2).Refs({1}).Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(20).Id(3).Refs({2}).AsLast().Build());
+  buffer.InsertFrame(test::FakeFrameBuilder().Time(40).Id(4).Refs({1}).Build());
+  buffer.InsertFrame(
+      test::FakeFrameBuilder().Time(40).Id(5).Refs({4}).AsLast().Build());
 
   buffer.ExtractNextDecodableTemporalUnit();
   EXPECT_THAT(buffer.GetTotalNumberOfDroppedFrames(), Eq(0));