From bf9bbe3afcbe4f380d011a86e360ca73a9bf90e3 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Tue, 15 Aug 2023 18:11:46 -0400 Subject: [PATCH] Cleaned up the spec file for tests so its actually sane --- lib/kiss/test.rb | 1 - lib/kiss/test/kiss_mock.rb | 49 ----------------- spec/kiss/kiss_abstract_spec.rb | 96 +++++++++++++++++++++++++++------ 3 files changed, 81 insertions(+), 65 deletions(-) delete mode 100644 lib/kiss/test.rb delete mode 100644 lib/kiss/test/kiss_mock.rb diff --git a/lib/kiss/test.rb b/lib/kiss/test.rb deleted file mode 100644 index 3c645f8..0000000 --- a/lib/kiss/test.rb +++ /dev/null @@ -1 +0,0 @@ -require 'kiss/test/kiss_mock' \ No newline at end of file diff --git a/lib/kiss/test/kiss_mock.rb b/lib/kiss/test/kiss_mock.rb deleted file mode 100644 index 1f8aa23..0000000 --- a/lib/kiss/test/kiss_mock.rb +++ /dev/null @@ -1,49 +0,0 @@ -require 'kiss/kiss_abstract' - -module Kiss - class KissMock < KissAbstract - - def initialize(strip_df_start=true) - super(strip_df_start) - @read_from_interface = [] - @sent_to_interface = [] - end - - public - def connect(mode_init=nil, *args, **kwargs) - end - - public - def close(*args, **kwargs) - end - - protected - def read_interface - if @read_from_interface.length == 0 - return nil - end - return @read_from_interface.shift - end - - protected - def write_interface(data) - @sent_to_interface << data - end - - public - def clear_interface - @read_from_interface = [] - @sent_to_interface = [] - end - - public - def add_read_from_interface(raw_frame) - @read_from_interface << raw_frame - end - - public - def get_sent_to_interface - return @sent_to_interface - end - end -end diff --git a/spec/kiss/kiss_abstract_spec.rb b/spec/kiss/kiss_abstract_spec.rb index 645723c..0057001 100644 --- a/spec/kiss/kiss_abstract_spec.rb +++ b/spec/kiss/kiss_abstract_spec.rb @@ -1,4 +1,4 @@ -require_relative '../../lib/kiss/test/kiss_mock' +require_relative '../../lib/kiss/kiss_abstract' require 'abstractify' ENCODED_FRAME = [192, 0, 158, 154, 142, 64, 64, 64, 96, 174, 100, 142, 154, 136, 64, 98, 174, 146, 136, 138, 98, 64, 98, 174, 146, 136, 138, 100, 64, 101, 3, 240, 116, 101, 115, 116, 95, 101, 110, 99, 111, 100, 101, 95, 102, 114, 97, 109, 101, 192] @@ -10,24 +10,90 @@ DECODED_FRAME = { :path => ['WIDE1-1', 'WIDE2-2'] } +class KissMock < Kiss::KissAbstract + + def initialize(strip_df_start=true) + super(strip_df_start) + @read_from_interface = [] + @sent_to_interface = [] + end + + public + def connect(mode_init=nil, *args, **kwargs) + end + + public + def close(*args, **kwargs) + end + + protected + def read_interface + if @read_from_interface.length == 0 + return nil + end + return @read_from_interface.shift + end + + protected + def write_interface(data) + @sent_to_interface << data + end + + public + def clear_interface + @read_from_interface = [] + @sent_to_interface = [] + end + + public + def add_read_from_interface(raw_frame) + @read_from_interface << raw_frame + end + + public + def get_sent_to_interface + return @sent_to_interface + end +end + describe Kiss::KissAbstract do - context "Do the things" do - it "does the things" do - kiss_mock = Kiss::KissMock.new - kiss_mock.add_read_from_interface(ENCODED_FRAME) - translated_frame = kiss_mock.read - #puts translated_frame - expect(translated_frame).to eql(DECODED_FRAME) - kiss_mock = Kiss::KissMock.new - kiss_mock.write(DECODED_FRAME) - all_raw_frames = kiss_mock.get_sent_to_interface - expect(all_raw_frames[0]).to eql(ENCODED_FRAME) + describe ".new" do + context "Given a concrete child class" do + it "is successfully instantiated" do + kiss_mock = KissMock.new + expect(kiss_mock).to_not be_nil + end + end + context "Given the abstract class itself" do + it "will throw an AbstractClassError" do + expect { + Kiss::KissAbstract.new + }.to raise_error(Abstractify::AbstractClassError) + end + end + end - expect { - Kiss::KissAbstract.new - }.to raise_error(Abstractify::AbstractError) + describe ".read" do + context "Given an encoded frame as bytes on the underlying interface" do + let(:kiss_mock) {KissMock.new} + it "successfully decoded and parsed the frame" do + kiss_mock.add_read_from_interface(ENCODED_FRAME) + translated_frame = kiss_mock.read + expect(translated_frame).to eql(DECODED_FRAME) + end + end + end + describe ".write" do + context "Given a decoded frame" do + let(:kiss_mock) {KissMock.new} + it "successfully encodes to the underlying interface" do + kiss_mock.write(DECODED_FRAME) + all_raw_frames = kiss_mock.get_sent_to_interface + expect(all_raw_frames[0]).to eql(ENCODED_FRAME) + end end end + end -- GitLab