-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage_spec.rb
More file actions
executable file
·130 lines (114 loc) · 2.9 KB
/
package_spec.rb
File metadata and controls
executable file
·130 lines (114 loc) · 2.9 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
require 'rubygems'
require 'package'
describe "the all predicate" do
it "should guarantee all are true" do
all(1..10, lambda {|x| x > 0}).should be_true
end
it "should guarantee none are false" do
all(1..10, lambda {|x| x > 1}).should be_false
end
end
describe "the some predicate" do
it "should guarantee at least one is true" do
some([true, false], lambda {|x| x}).should be_true
some([false, false], lambda {|x| x}).should be_false
end
end
describe Package do
after(:each) do
Packages.clear
end
describe "register" do
it "should increment package_directory.count" do
lambda {
Packages.register(:foo, Package.new(:foo))
}.should change(Packages, :count).from(0).to(1)
end
end
end
describe "package" do
after(:each) do
Packages.clear
end
it "should self register" do
Packages.register(:foo, Package.new(:foo))
Packages.count.should eql(1)
lambda { Packages.lookup(:foo) }.should_not raise_error
end
describe "defaults" do
foo = nil
before(:all) do
foo = Package.new(:foo)
Packages.register(:foo, foo)
end
it "should all be absent" do
lambda { foo.install }.should raise_error
lambda { foo.remove }.should raise_error
lambda { foo.installed? }.should raise_error
end
end
describe "install" do
it "should set install_callback" do
class Installer < Package
def install
"I install"
end
def remove
"nothing"
end
def installed?
false
end
end
Packages.register(:installer, Installer.new(:installer))
Packages.install(:installer).should eql("I install")
end
end
describe "remove" do
it "should set remove_callback" do
class Remover < Package
def install
"nothing"
end
def remove
"I remove"
end
def installed?
true
end
end
Packages.register(:remover, Remover.new(:remover))
Packages.remove(:remover).should eql("I remove")
end
end
describe "installed?" do
it "should set installed_callback" do
class Installed < Package
def installed?
"I'm installed"
end
end
Packages.register(:installed?, Installed.new(:installed?))
Packages.installed?(:installed?).should eql("I'm installed")
end
end
describe "add_dependency" do
it "should add new dependency" do
foo = Package.new(:foo)
foo.add_dependency(:bar)
foo.dependency_names.count.should eql(1)
end
end
describe "depends_on" do
it "should add new dependencies" do
a = Package.new(:a)
b = Package.new(:b)
c = Package.new(:c)
class Depender < Package
depends_on :a, :b, :c
end
foo = Depender.new(:depender)
foo.dependency_names.count.should eql(3)
end
end
end