public
Rubygem
Description: Merb Core: All you need. None you don't.
Homepage: http://www.merbivore.com
Clone URL: git://github.com/wycats/merb-core.git
commit  1f4aa010a15ef24b3d833f6432cd50becf5f9ac3
tree    a7996f919cdd665fb2a3388051a1203eb95a83f1
parent  56cc15ab05301d8ed6f440795aabb43203c7179d
merb-core / spec / private / plugins / plugin_spec.rb
100644 133 lines (99 sloc) 3.504 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
131
132
133
require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
 
Merb.environment = 'test'
 
describe "Plugins", "default GENERATOR_SCOPE" do
  it "should have :merb_default first" do
    Merb.generator_scope.first.should == :merb_default
  end
 
  it "should have :merb" do
    Merb.generator_scope.should include(:merb)
  end
 
  it "should have :rspec last" do
    Merb.generator_scope.last.should == :rspec
  end
end
 
describe "Plugins","use_orm" do
  before(:each) do
    Merb.generator_scope.replace [:merb_default, :merb, :rspec]
    Kernel.stub!(:dependency)
  end
 
  it "should raise an error if use_orm is called twice" do
    use_orm(:activerecord)
    lambda { use_orm(:datamapper) }.should raise_error("Don't call use_orm more than once")
  end
 
  it "should not have :merb_default in GENERATOR_SCOPE with use_orm(:activerecord)" do
    use_orm(:activerecord)
    Merb.generator_scope.should_not include(:merb_default)
  end
 
  it "should have :activerecord in GENERATOR_SCOPE with use_orm(:activerecord)" do
    use_orm(:activerecord)
    Merb.generator_scope.should include(:activerecord)
  end
 
  it "should have :activerecord first in GENERATOR_SCOPE with use_orm(:activerecord)" do
    use_orm(:activerecord)
    Merb.generator_scope.first.should == :activerecord
  end
 
  it "should call dependency :merb_activerecord with use_orm(:activerecord)" do
    Kernel.should_receive(:dependency).with("merb_activerecord").once.
      and_return(true)
    use_orm(:activerecord)
  end
end
 
 
 
describe "Plugins","use_test" do
  before(:each) do
    Merb.generator_scope.replace [:merb_default, :merb, :rspec]
    Kernel.stub!(:dependency)
  end
 
  it "should have :rspec in GENERATOR_SCOPE by default" do
    Merb.generator_scope.should include(:rspec)
  end
 
  it "should not have :rspec in GENERATOR_SCOPE with use_test(:test_unit)" do
    use_test(:test_unit)
    Merb.generator_scope.should_not include(:rspec)
  end
 
  it "should have :test_unit in GENERATOR_SCOPE with use_test(:test_unit)" do
    use_test(:test_unit)
    Merb.generator_scope.should include(:test_unit)
  end
 
  it "should have :test_unit last in GENERATOR_SCOPE with use_test(:test_unit)" do
    use_test(:test_unit)
    Merb.generator_scope.last.should == :test_unit
  end
 
  it "should raise an error if called with an unsupported test framework" do
    lambda { use_test(:fiddlefaddle) }.should raise_error
  end
end
 
 
describe "Plugins", "register_orm" do
  before(:each) do
    Merb.generator_scope.replace [:merb_default, :merb, :rspec]
    Kernel.stub!(:dependency)
  end
 
  it "registers ORM plugin at generator scope" do
    register_orm(:sequel)
 
    Merb.generator_scope.should include(:sequel)
  end
end
 
 
 
describe "Plugins", "register_test_framework" do
  before(:each) do
    Merb.generator_scope.replace [:merb_default, :merb, :rspec]
    Kernel.stub!(:dependency)
  end
 
  it "registers test framework at generator scope" do
    register_test_framework(:test_unit)
 
    Merb.generator_scope.should include(:test_unit)
  end
end
 
 
 
describe "Plugins", "supported_test_framework?" do
  before(:each) do
    Merb.generator_scope.replace [:merb_default, :merb, :rspec]
    Kernel.stub!(:dependency)
  end
 
  it "supports RSpec" do
    supported_test_framework?(:rspec).should be(true)
  end
 
  it "supports Test::Unit" do
    supported_test_framework?(:rspec).should be(true)
  end
 
  it "DOES NOT yet support MSpec (of Rubinius fame)" do
    supported_test_framework?(:mspec).should be(false)
  end
end