summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/indirector.rb22
-rw-r--r--lib/puppet/indirector/terminus.rb19
-rwxr-xr-xspec/unit/indirector/terminus.rb39
3 files changed, 59 insertions, 21 deletions
diff --git a/lib/puppet/indirector.rb b/lib/puppet/indirector.rb
index bb7006431..4d7d9d92d 100644
--- a/lib/puppet/indirector.rb
+++ b/lib/puppet/indirector.rb
@@ -7,28 +7,8 @@ module Puppet::Indirector
# LAK:FIXME We need to figure out how to handle documentation for the
# different indirection types.
-# JRB:TODO factor this out into its own class, with specs, and require it here
-# require 'puppet/indirector/terminus'
-
- # A simple class that can function as the base class for indirected types.
- class Terminus
- require 'puppet/util/docs'
- extend Puppet::Util::Docs
-
- class << self
- attr_accessor :name, :indirection
- end
-
- def name
- self.class.name
- end
-
- def indirection
- self.class.indirection
- end
- end
-
require 'puppet/indirector/indirection'
+ require 'puppet/indirector/terminus'
# This handles creating the terminus classes.
require 'puppet/util/classgen'
diff --git a/lib/puppet/indirector/terminus.rb b/lib/puppet/indirector/terminus.rb
new file mode 100644
index 000000000..d311eb60b
--- /dev/null
+++ b/lib/puppet/indirector/terminus.rb
@@ -0,0 +1,19 @@
+require 'puppet/indirector'
+
+# A simple class that can function as the base class for indirected types.
+class Puppet::Indirector::Terminus
+ require 'puppet/util/docs'
+ extend Puppet::Util::Docs
+
+ class << self
+ attr_accessor :name, :indirection
+ end
+
+ def name
+ self.class.name
+ end
+
+ def indirection
+ self.class.indirection
+ end
+end
diff --git a/spec/unit/indirector/terminus.rb b/spec/unit/indirector/terminus.rb
new file mode 100755
index 000000000..9632aa22f
--- /dev/null
+++ b/spec/unit/indirector/terminus.rb
@@ -0,0 +1,39 @@
+require File.dirname(__FILE__) + '/../../spec_helper'
+require 'puppet/defaults'
+require 'puppet/indirector'
+
+describe Puppet::Indirector::Terminus do
+ it "should support the documentation methods" do
+ Puppet::Indirector::Terminus.should respond_to(:desc)
+ end
+
+ # LAK:FIXME I don't really know the best way to test this kind of
+ # requirement.
+ it "should support a class-level name attribute" do
+ Puppet::Indirector::Terminus.should respond_to(:name)
+ Puppet::Indirector::Terminus.should respond_to(:name=)
+ end
+
+ it "should support a class-level indirection attribute" do
+ Puppet::Indirector::Terminus.should respond_to(:indirection)
+ Puppet::Indirector::Terminus.should respond_to(:indirection=)
+ end
+end
+
+describe Puppet::Indirector::Terminus, " when a terminus instance" do
+ before do
+ @terminus_class = Class.new(Puppet::Indirector::Terminus) do
+ @name = :test
+ @indirection = :whatever
+ end
+ @terminus = @terminus_class.new
+ end
+
+ it "should return the class's name as its name" do
+ @terminus.name.should == :test
+ end
+
+ it "should return the class's indirection as its indirection" do
+ @terminus.indirection.should == :whatever
+ end
+end