Sha256: 95d5efdba071556d47d054a9357d835430e611bca193f9708a9c6f972295ccc0
Contents?: true
Size: 1.98 KB
Versions: 29
Compression:
Stored size: 1.98 KB
Contents
#! /usr/bin/env ruby require 'spec_helper' require 'rbconfig' require 'fileutils' provider_class = Puppet::Type.type(:service).provider(:init) describe "base service provider" do include PuppetSpec::Files let :type do Puppet::Type.type(:service) end let :provider do type.provider(:base) end subject { provider } context "basic operations" do # Cross-platform file interactions. Fun times. Ruby = File.join(RbConfig::CONFIG["bindir"], RbConfig::CONFIG["RUBY_INSTALL_NAME"] + RbConfig::CONFIG["EXEEXT"]) Start = [Ruby, '-rfileutils', '-e', 'FileUtils.touch(ARGV[0])'] Status = [Ruby, '-e' 'exit File.file?(ARGV[0])'] Stop = [Ruby, '-e', 'File.exist?(ARGV[0]) and File.unlink(ARGV[0])'] let :flag do tmpfile('base-service-test') end subject do type.new(:name => "test", :provider => :base, :start => Start + [flag], :status => Status + [flag], :stop => Stop + [flag] ).provider end before :each do File.unlink(flag) if File.exist?(flag) end it { should be } it "should invoke the start command if not running" do File.should_not be_file flag subject.start File.should be_file flag end it "should be stopped before being started" do subject.status.should == :stopped end it "should be running after being started" do subject.start subject.status.should == :running end it "should invoke the stop command when asked" do subject.start subject.status.should == :running subject.stop subject.status.should == :stopped File.should_not be_file flag end it "should start again even if already running" do subject.start subject.expects(:ucommand).with(:start) subject.start end it "should stop again even if already stopped" do subject.stop subject.expects(:ucommand).with(:stop) subject.stop end end end
Version data entries
29 entries across 29 versions & 2 rubygems