blob: 06f7ce04dd4f6f4bea7ebd7285217229480f37ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
require 'test_helper'
class CertPoolTest < ActiveSupport::TestCase
setup do
2.times { LeapCA::Cert.create(LeapCA::Cert.valid_attributes_hash) }
end
teardown do
LeapCA::Cert.all.each {|c| c.destroy}
end
test "picks random sample" do
# with 3 certs chances are pretty low we pick the same one 40 times.
LeapCA::Cert.create! LeapCA::Cert.valid_attributes_hash
picked = []
first = LeapCA::Cert.sample.id
current = LeapCA::Cert.sample.id
40.times do
break if current != first
current = LeapCA::Cert.sample.id
end
assert_not_equal current, first
end
test "picks cert from the pool" do
assert_difference "LeapCA::Cert.count", -1 do
cert = LeapCA::Cert.pick_from_pool
end
end
test "err's out if all certs have been destroyed" do
sample = LeapCA::Cert.first.tap{|c| c.destroy}
LeapCA::Cert.all.each {|c| c.destroy}
assert_raises RECORD_NOT_FOUND do
LeapCA::Cert.expects(:sample).returns(sample)
cert = LeapCA::Cert.pick_from_pool
end
end
test "picks other cert if first pick has been destroyed" do
first = LeapCA::Cert.first.tap{|c| c.destroy}
second = LeapCA::Cert.first
LeapCA::Cert.expects(:sample).at_least_once.
returns(first).
then.returns(second)
cert = LeapCA::Cert.pick_from_pool
assert_equal second, cert
assert_nil LeapCA::Cert.first
end
end
|