diff options
| -rw-r--r-- | libs/kstd/kstd/ring_buffer.tests.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libs/kstd/kstd/ring_buffer.tests.cpp b/libs/kstd/kstd/ring_buffer.tests.cpp index 7f459734..2157b6c3 100644 --- a/libs/kstd/kstd/ring_buffer.tests.cpp +++ b/libs/kstd/kstd/ring_buffer.tests.cpp @@ -195,6 +195,22 @@ SCENARIO("Ring Buffer element access", "[kstd][ring_buffer]") Catch::Matchers::Message("[KSTD] Index out-of-bounds in ring_buffer element access!")); } + WHEN("writing through the return value of at()") + { + buffer.at(1) = 'b'; + + THEN("the written element is changed") + { + REQUIRE(buffer.at(1) == 'b'); + } + + THEN("the other elements are unchanged") + { + REQUIRE(buffer.at(0) == 'a'); + REQUIRE(buffer.at(2) == 'a'); + } + } + THEN("accessing the first 3 elements using operator[] returns 'a'") { REQUIRE(buffer[0] == 'a'); @@ -202,6 +218,22 @@ SCENARIO("Ring Buffer element access", "[kstd][ring_buffer]") REQUIRE(buffer[2] == 'a'); } + WHEN("writing through the return value of operator[]") + { + buffer[1] = 'b'; + + THEN("the written element is changed") + { + REQUIRE(buffer.at(1) == 'b'); + } + + THEN("the other elements are unchanged") + { + REQUIRE(buffer.at(0) == 'a'); + REQUIRE(buffer.at(2) == 'a'); + } + } + WHEN("working through a const reference") { auto const & ref = buffer; |
