]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/inifile/spec/unit/puppet/util/external_iterator_spec.rb
add puppetlabs/inifile to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / inifile / spec / unit / puppet / util / external_iterator_spec.rb
diff --git a/3rdparty/modules/inifile/spec/unit/puppet/util/external_iterator_spec.rb b/3rdparty/modules/inifile/spec/unit/puppet/util/external_iterator_spec.rb
new file mode 100644 (file)
index 0000000..92b17af
--- /dev/null
@@ -0,0 +1,35 @@
+require 'spec_helper'
+require 'puppet/util/external_iterator'
+
+describe Puppet::Util::ExternalIterator do
+  let(:subject) { Puppet::Util::ExternalIterator.new(["a", "b", "c"]) }
+
+  context "#next" do
+    it "should iterate over the items" do
+      subject.next.should == ["a", 0]
+      subject.next.should == ["b", 1]
+      subject.next.should == ["c", 2]      
+    end
+  end
+
+  context "#peek" do
+    it "should return the 0th item repeatedly" do
+      subject.peek.should == ["a", 0]
+      subject.peek.should == ["a", 0]
+    end
+    
+    it "should not advance the iterator, but should reflect calls to #next" do
+      subject.peek.should == ["a", 0]
+      subject.peek.should == ["a", 0]
+      subject.next.should == ["a", 0]
+      subject.peek.should == ["b", 1]
+      subject.next.should == ["b", 1]
+      subject.peek.should == ["c", 2]
+      subject.next.should == ["c", 2]
+      subject.peek.should == [nil, nil]
+      subject.next.should == [nil, nil]
+    end
+  end
+
+
+end