]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
fqdn_rotate: Add tests for custom seeds
authorEli Young <elyscape@gmail.com>
Mon, 1 Jun 2015 23:29:39 +0000 (16:29 -0700)
committerEli Young <elyscape@gmail.com>
Tue, 2 Jun 2015 00:03:42 +0000 (17:03 -0700)
spec/functions/fqdn_rotate_spec.rb

index 6c76781e162adeb2b47b291fb8ca4c23bbbb7c8a..db7a717324b6227f7f6d8c115d608e4f577ea6da 100755 (executable)
@@ -21,6 +21,18 @@ describe 'fqdn_rotate' do
     expect(val1).to eq(val2)
   end
 
+  it "allows extra arguments to control the random rotation on a single host" do
+    val1 = fqdn_rotate("abcdefg", :extra_identifier => [1, "different", "host"])
+    val2 = fqdn_rotate("abcdefg", :extra_identifier => [2, "different", "host"])
+    expect(val1).not_to eq(val2)
+  end
+
+  it "considers the same host and same extra arguments to have the same random rotation" do
+    val1 = fqdn_rotate("abcdefg", :extra_identifier => [1, "same", "host"])
+    val2 = fqdn_rotate("abcdefg", :extra_identifier => [1, "same", "host"])
+    expect(val1).to eq(val2)
+  end
+
   it "should rotate a string to give different values on different hosts" do
     val1 = fqdn_rotate("abcdefg", :host => 'one')
     val2 = fqdn_rotate("abcdefg", :host => 'two')
@@ -51,11 +63,13 @@ describe 'fqdn_rotate' do
 
   def fqdn_rotate(value, args = {})
     host = args[:host] || '127.0.0.1'
+    extra = args[:extra_identifier] || []
 
     # workaround not being able to use let(:facts) because some tests need
     # multiple different hostnames in one context
     scope.stubs(:lookupvar).with("::fqdn").returns(host)
 
-    scope.function_fqdn_rotate([value])
+    function_args = [value] + extra
+    scope.function_fqdn_rotate(function_args)
   end
 end