package.path = '../common/libs/?.lua;../common/vendor/?.lua;' .. package.path local lu = require('luaunit') require('mock_reaper') require('Polo') require('OptionsConfig') -- TestOptionsConfig = { options = OptionsConfig:new { section = 'ReaSpeech.Options', options = { patties_per_burger = {'number', 2}, num_pickles = {'number', 2}, } } } function TestOptionsConfig:setUp() reaper.__test_setUp() reaper.__ext_state__[self.options.section] = {} end function TestOptionsConfig:testDefault() local num_pickles = self.options:get('num_pickles') lu.assertEquals(num_pickles, 2) end function TestOptionsConfig:testGet() reaper.__ext_state__[self.options.section].num_pickles = '3' local num_pickles = self.options:get('num_pickles') lu.assertEquals(num_pickles, 3) lu.assertEquals(reaper.__ext_state__[self.options.section].num_pickles, '3') end function TestOptionsConfig:testSet() self.options:set('num_pickles', 4) lu.assertEquals(self.options:get('num_pickles'), 4) lu.assertEquals(reaper.__ext_state__[self.options.section].num_pickles, '4') end function TestOptionsConfig:testDelete() self.options:set('num_pickles', 4) self.options:delete('num_pickles') lu.assertNil(reaper.__ext_state__[self.options.section].num_pickles) end function TestOptionsConfig:testExists() lu.assertFalse(self.options:exists('num_pickles')) self.options:set('num_pickles', 4) lu.assertTrue(self.options:exists('num_pickles')) self.options:delete('num_pickles') lu.assertFalse(self.options:exists('num_pickles')) end function TestOptionsConfig:testToString() lu.assertEquals(self.options:_number_to_string(42), '42') lu.assertEquals(self.options:_number_to_string('x'), '0') lu.assertEquals(self.options:_boolean_to_string(true), 'true') lu.assertEquals(self.options:_boolean_to_string(false), 'false') lu.assertEquals(self.options:_boolean_to_string('x'), 'true') lu.assertEquals(self.options:_boolean_to_string(nil), 'false') end function TestOptionsConfig:testFromString() lu.assertEquals(self.options:_string_to_number('42'), 42) lu.assertEquals(self.options:_string_to_number('x'), 0) lu.assertTrue(self.options:_string_to_boolean('true')) lu.assertFalse(self.options:_string_to_boolean('false')) lu.assertFalse(self.options:_string_to_boolean('x')) lu.assertFalse(self.options:_string_to_boolean(nil)) end -- os.exit(lu.LuaUnit.run())