From 1dd3ff17cfa1d52daf0e7bb43c5e4686381d7d82 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Mon, 17 Jul 2023 14:14:16 +0100 Subject: [PATCH] started implemented tests rakefile added --- rakefile | 6 +++++ test/higher/higher_test.rb | 48 ++++++++++++++++++++++++++++++++++++++ test/lower/lower_test.rb | 0 test/minitest_helper.rb | 23 ++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 rakefile create mode 100644 test/higher/higher_test.rb create mode 100644 test/lower/lower_test.rb create mode 100644 test/minitest_helper.rb diff --git a/rakefile b/rakefile new file mode 100644 index 0000000..7991eda --- /dev/null +++ b/rakefile @@ -0,0 +1,6 @@ +require "rake/testtask" + +Rake::TestTask.new do |t| + t.pattern = "test/**/*_test.rb" +end +task default: :test diff --git a/test/higher/higher_test.rb b/test/higher/higher_test.rb new file mode 100644 index 0000000..da9e2da --- /dev/null +++ b/test/higher/higher_test.rb @@ -0,0 +1,48 @@ +require_relative "../minitest_helper" + +class StripTest < Minitest::Test + [false, true].each do |val| + define_method("test_it_sets_and_gets_strip_#{Test.data.phys_in}_mute_#{val}") do + Test.vm.strip[Test.data.phys_in].mute = val + assert_equal(val, Test.vm.strip[Test.data.phys_in].mute) + end + end +end + +class BusTest < Minitest::Test + [false, true].each do |val| + define_method("test_it_sets_and_gets_bus_#{Test.data.phys_out}_mute_#{val}") do + Test.vm.bus[Test.data.phys_out].mute = val + assert_equal(val, Test.vm.bus[Test.data.phys_out].mute) + end + end +end + +class VbanTest < Minitest::Test + [false, true].each do |val| + define_method("test_it_sets_and_gets_vban_#{Test.data.phys_in}_on_#{val}") do + Test.vm.vban.instream[0].on = val + assert_equal(val, Test.vm.vban.instream[0].on) + end + end +end + +class ButtonTest < Minitest::Test + [false, true].each do |val| + define_method("test_it_sets_and_gets_button_#{Test.data.button_lower}_stateonly_#{val}") do + Test.vm.button[Test.data.button_lower].stateonly = val + assert_equal(val, Test.vm.button[Test.data.button_lower].stateonly) + end + end +end + +class RecorderTest < Minitest::Test + if Test.data.name != :basic + [false, true].each do |val| + define_method("test_it_sets_and_gets_recorder_mode_loop_#{val}") do + Test.vm.recorder.mode.loop = val + assert_equal(val, Test.vm.recorder.mode.loop) + end + end + end +end diff --git a/test/lower/lower_test.rb b/test/lower/lower_test.rb new file mode 100644 index 0000000..e69de29 diff --git a/test/minitest_helper.rb b/test/minitest_helper.rb new file mode 100644 index 0000000..e0fe448 --- /dev/null +++ b/test/minitest_helper.rb @@ -0,0 +1,23 @@ +require "minitest/autorun" + +require_relative "../lib/voicemeeter" + +class Test + @vm = Voicemeeter::Remote.new([:basic, :banana, :potato].sample) + @vm.login + puts "Running #{@vm.kind.name} tests" + + def self.vm + @vm + end + + TestMap = Data.define(:name, :phys_in, :virt_in, :phys_out, :virt_out, :button_lower, :button_higher) + + @data = TestMap.new(@vm.kind.name, @vm.kind.phys_in - 1, @vm.kind.virt_in - 1, @vm.kind.phys_out - 1, @vm.kind.virt_out - 1, 0, 79) + + def self.data + @data + end + + Minitest.after_run { @vm.logout } +end