diff options
author | Azul <azul@leap.se> | 2012-09-08 11:11:43 +0200 |
---|---|---|
committer | Azul <azul@leap.se> | 2012-09-08 11:11:43 +0200 |
commit | 5d7abc3f144bc569c89f1af7627f2f88df6009e0 (patch) | |
tree | 5a90fd2ff5ef6f71826a4e22e9d024f81b3cb9c2 | |
parent | b0ee08ded6aca81a58b82ebd99dbfaaa441ac9f2 (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.rb | 34 | ||||
-rw-r--r-- | test/unit/cert_test.rb | 42 |
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 |