require 'test_helper' class CertTest < ActiveSupport::TestCase setup do @sample = Cert.new @sample.set_random @sample.attach_zip end test "certs come with attachments" do assert @sample.has_attachment? "cert.txt" end test "cert.zip_attachment returns couchDB attachment" do assert_equal "text/plain", @sample.zip_attachment["content_type"] end test "cert.zipped returns the actual data" do @sample.save # This is required! assert lines = @sample.zipped.split("\n") assert_equal "-----BEGIN RSA PRIVATE KEY-----", lines.first.chomp assert_equal "-----END CERTIFICATE-----", lines.last.chomp end test "cert.zipname returns name for the zip file" do assert_equal "cert.txt", @sample.zipname end test "test data is valid" do assert @sample.valid? end test "validates random" do @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 test "validates attachment" do @sample.stubs(:attach_zip) @sample.delete_attachment(@sample.zipname) assert !@sample.valid?, "Cert should require zipped attachment" end end