/
lowlevel_spec.rb
84 lines (65 loc) · 3.05 KB
/
lowlevel_spec.rb
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
80
81
82
83
84
require 'spec_helper'
describe TidyFFI::Interface do
I = TidyFFI::Interface
describe "default_options" do
it "returns a hash" do
I.default_options.is_a?(Hash)
end
it "has show force_output option" do
I.default_options[:force_output][:name].should == :force_output
I.default_options[:force_output][:type].should == :boolean
end
end
describe "option_valid" do
it "returns false when unknown options is specified" do
I.option_valid?(:gobbledygook, '1').should == false
end
it "accepts yes, no, 1, 0, true, false as boolean values" do
I.stubs(:default_options).returns({:gobbledygook => {:type => :boolean}})
%w{yes no 1 0 true false on off YeS}.each do |val|
I.option_valid?(:gobbledygook, val).should == true
end
I.option_valid?(:gobbledygook, 1).should == true
I.option_valid?(:gobbledygook, 0).should == true
I.option_valid?(:gobbledygook, true).should == true
I.option_valid?(:gobbledygook, false).should == true
I.option_valid?(:gobbledygook, "gobbledygook").should == false
end
it "accepts a number as a valid integer value" do
I.stubs(:default_options).returns({:gobbledygook => {:type => :integer}})
I.option_valid?(:gobbledygook, 1).should == true
I.option_valid?(:gobbledygook, 0).should == true
I.option_valid?(:gobbledygook, "0").should == true
I.option_valid?(:gobbledygook, "1").should == true
I.option_valid?(:gobbledygook, "42").should == true
I.option_valid?(:gobbledygook, "gobbledygook").should == false
I.option_valid?(:gobbledygook, "true").should == false
end
it "accepts any string as a valid string value" do
I.stubs(:default_options).returns({:gobbledygook => {:type => :string}})
I.option_valid?(:gobbledygook, 1).should == false
I.option_valid?(:gobbledygook, 0).should == false
I.option_valid?(:gobbledygook, "0").should == true
I.option_valid?(:gobbledygook, "1").should == true
I.option_valid?(:gobbledygook, "42").should == true
I.option_valid?(:gobbledygook, "gobbledygook").should == true
I.option_valid?(:gobbledygook, "true").should == true
end
it "accepts a symbols as a valid string value" do
I.stubs(:default_options).returns({:gobbledygook => {:type => :string}})
I.option_valid?(:gobbledygook, :test).should == true
end
it "accepts number in range as a valid enum value" do
I.stubs(:default_options).returns({:gobbledygook => {:type => :enum, :values => ["one", "two"]}})
I.option_valid?(:gobbledygook, 1).should == true
I.option_valid?(:gobbledygook, 0).should == true
I.option_valid?(:gobbledygook, 3).should == false
end
it "accepts string representation of enum value" do
I.stubs(:default_options).returns({:gobbledygook => {:type => :enum, :values => ["one", "two"]}})
I.option_valid?(:gobbledygook, "one").should == true
I.option_valid?(:gobbledygook, "two").should == true
I.option_valid?(:gobbledygook, "three").should == false
end
end
end