OSDN Git Service

Replaced mongrel with thin
[redminele/redminele.git] / ruby / lib / ruby / gems / 1.8 / gems / thin-1.2.11-x86-mswin32 / spec / controllers / service_spec.rb
diff --git a/ruby/lib/ruby/gems/1.8/gems/thin-1.2.11-x86-mswin32/spec/controllers/service_spec.rb b/ruby/lib/ruby/gems/1.8/gems/thin-1.2.11-x86-mswin32/spec/controllers/service_spec.rb
new file mode 100644 (file)
index 0000000..6c6cd3b
--- /dev/null
@@ -0,0 +1,50 @@
+require File.dirname(__FILE__) + '/../spec_helper'
+include Controllers
+
+describe Service do
+  before(:all) do
+    silence_stream(STDERR) do
+      Service::INITD_PATH          = 'tmp/sandbox' + Service::INITD_PATH
+      Service::DEFAULT_CONFIG_PATH = 'tmp/sandbox' + Service::DEFAULT_CONFIG_PATH
+    end
+  end
+  
+  before do
+    Thin.stub!(:linux?).and_return(true)
+    FileUtils.mkdir_p 'tmp/sandbox'
+        
+    @service = Service.new(:all => 'spec/configs')
+  end
+  
+  it "should call command for each config file" do
+    Command.should_receive(:run).with(:start, :config => 'spec/configs/cluster.yml', :daemonize => true)
+    Command.should_receive(:run).with(:start, :config => 'spec/configs/single.yml', :daemonize => true)
+    
+    @service.start
+  end
+  
+  it "should create /etc/init.d/thin file when calling install" do
+    @service.install
+    
+    File.exist?(Service::INITD_PATH).should be_true
+    File.read(Service::INITD_PATH).should include('CONFIG_PATH=tmp/sandbox/etc/thin',
+                                                  'SCRIPT_NAME=tmp/sandbox/etc/init.d/thin',
+                                                  'DAEMON=' + Command.script)
+  end
+  
+  it "should create /etc/thin dir when calling install" do
+    @service.install
+    
+    File.directory?(Service::DEFAULT_CONFIG_PATH).should be_true
+  end
+  
+  it "should include specified path in /etc/init.d/thin script" do
+    @service.install('tmp/sandbox/usr/thin')
+    
+    File.read(Service::INITD_PATH).should include('CONFIG_PATH=tmp/sandbox/usr/thin')
+  end
+  
+  after do
+    FileUtils.rm_rf 'tmp/sandbox'
+  end
+end
\ No newline at end of file