File size: 2,424 Bytes
402daee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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())