From 5560b7a0e032bdf4bca753d4aba4625340853d1c Mon Sep 17 00:00:00 2001 From: Julian Andrews Date: Sat, 2 May 2015 12:25:41 -0600 Subject: [PATCH] Add tests for write! edge cases in Circular Buffer Tests for "CircularBuffer.write!" with "nil" argument and on non-full buffers. Fixes #123. --- circular-buffer/circular_buffer_test.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/circular-buffer/circular_buffer_test.rb b/circular-buffer/circular_buffer_test.rb index 8ca1375098..cc2a3101fb 100644 --- a/circular-buffer/circular_buffer_test.rb +++ b/circular-buffer/circular_buffer_test.rb @@ -86,6 +86,26 @@ def test_overwriting_oldest_item_in_a_full_buffer assert_raises(CircularBuffer::BufferEmptyException) { buffer.read } end + def test_forced_writes_of_nil_should_not_occupy_buffer + skip + buffer = CircularBuffer.new(2) + (1..2).each { |i| buffer.write String(i) } + buffer.write! nil + assert_equal '1', buffer.read + assert_equal '2', buffer.read + assert_raises(CircularBuffer::BufferEmptyException) { buffer.read } + end + + def test_forced_writes_to_non_full_buffer_should_behave_like_writes + skip + buffer = CircularBuffer.new(2) + buffer.write '1' + buffer.write! '2' + assert_equal '1', buffer.read + assert_equal '2', buffer.read + assert_raises(CircularBuffer::BufferEmptyException) { buffer.read } + end + # rubocop:disable Metrics/MethodLength def test_alternate_read_and_write_into_buffer_overflow skip