summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2012-09-08 11:11:43 +0200
committerAzul <azul@leap.se>2012-09-08 11:11:43 +0200
commit5d7abc3f144bc569c89f1af7627f2f88df6009e0 (patch)
tree5a90fd2ff5ef6f71826a4e22e9d024f81b3cb9c2
parentb0ee08ded6aca81a58b82ebd99dbfaaa441ac9f2 (diff)
brought over cert skeleton for filling the pool
* turned the test into a MiniTest * removed all the parts needed for fetching the cert from the pool
-rw-r--r--lib/cert.rb34
-rw-r--r--test/unit/cert_test.rb42
2 files changed, 76 insertions, 0 deletions
diff --git a/lib/cert.rb b/lib/cert.rb
new file mode 100644
index 0000000..c937fb8
--- /dev/null
+++ b/lib/cert.rb
@@ -0,0 +1,34 @@
+require 'couchrest_model'
+
+class Cert < CouchRest::Model::Base
+
+ use_database 'certs'
+
+ timestamps!
+
+ property :random, Float, :accessible => false
+
+ before_validation :set_random, :attach_zip, :on => :create
+
+ validates :random, :presence => true,
+ :numericality => {:greater_than => 0, :less_than => 1}
+
+ validates :zipped, :presence => true
+
+ def set_random
+ self.random = rand
+ end
+
+ def attach_zip
+ self.create_attachment :file => StringIO.new("dummy cert"), :name => zipname
+ end
+
+ def zipname
+ 'cert.zip'
+ end
+
+ def zipped
+ attachments[zipname]
+ end
+
+end
diff --git a/test/unit/cert_test.rb b/test/unit/cert_test.rb
new file mode 100644
index 0000000..3f4c01f
--- /dev/null
+++ b/test/unit/cert_test.rb
@@ -0,0 +1,42 @@
+require 'test_helper'
+require 'lib/cert'
+
+class CertTest < MiniTest::Unit::TestCase
+
+ def setup
+ @sample = Cert.new
+ @sample.set_random
+ @sample.attach_zip
+ end
+
+ def test_certs_come_with_attachments
+ assert @sample.has_attachment? "cert.zip"
+ end
+
+ def test_zipper_returns_zip_attachement
+ assert_equal "application/zip", @sample.zipped["content_type"]
+ end
+
+ def test_zipname_returns_name_of_zip_file
+ assert_equal "cert.zip", @sample.zipname
+ end
+
+ def test_test_data
+ assert @sample.valid?
+ end
+
+ def test_validation_of_random
+ @sample.stubs(:set_random)
+ [0, 1, nil, "asdf"].each do |invalid|
+ @sample.random = invalid
+ assert !@sample.valid?, "#{invalid} should not be a valid value for random"
+ end
+ end
+
+ def test_validation_of_attachement
+ @sample.stubs(:attach_zip)
+ @sample.delete_attachment(@sample.zipname)
+ assert !@sample.valid?, "Cert should require zipped attachment"
+ end
+
+end