From 5d7abc3f144bc569c89f1af7627f2f88df6009e0 Mon Sep 17 00:00:00 2001 From: Azul Date: Sat, 8 Sep 2012 11:11:43 +0200 Subject: 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 --- lib/cert.rb | 34 ++++++++++++++++++++++++++++++++++ test/unit/cert_test.rb | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 lib/cert.rb create mode 100644 test/unit/cert_test.rb 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 -- cgit v1.2.3