test/encryption_test.rb in symmetric-encryption-0.1.2 vs test/encryption_test.rb in symmetric-encryption-0.2.0

- old
+ new

@@ -2,101 +2,40 @@ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib' require 'rubygems' require 'test/unit' require 'shoulda' -require 'symmetric-encryption' -require 'yaml' -# #TODO Need to supply the model and migrations for this test -class User - attr_encrypted :bank_account_number - attr_encrypted :social_security_number -end - # Unit Test for Symmetric::Encryption # -class EncryptionTest < ActiveSupport::TestCase - context 'the Symmetric::Encryption Library' do +class EncryptionTest < Test::Unit::TestCase + context 'initialized' do setup do - @bank_account_number = "1234567890" - @bank_account_number_encrypted = "V8Dg6zeeIpDg4+qrn2mjlA==\n" - - @social_security_number = "987654321" - @social_security_number_encrypted = "Qd0qzN6oVuATJQBTf8X6tg==\n" - - @user = User.new( - # Encrypted Attribute - :bank_account_number => @bank_account_number, - # Encrypted Attribute - :social_security_number => @social_security_number - ) + Symmetric::Encryption.load!(File.join(File.dirname(__FILE__), 'config', 'symmetric-encryption.yml'), 'test') end - should "encrypt simple string" do - assert_equal @social_security_number_encrypted, Symmetric::Encryption.encrypt(@social_security_number) - end + context 'Symmetric::Encryption tests' do + setup do + @bank_account_number = "1234567890" + @bank_account_number_encrypted = "QUxoUU8O/mi0o9ykgXNBFg==\n" - should "decrypt string" do - assert_equal @social_security_number, Symmetric::Encryption.decrypt(@social_security_number_encrypted) - end + @social_security_number = "987654321" + @social_security_number_encrypted = "Jj7dKb3B0aUCnqH/YKGvKw==\n" + end - should "have encrypted methods" do - assert_equal true, @user.respond_to?(:encrypted_bank_account_number) - assert_equal true, @user.respond_to?(:encrypted_social_security_number) - assert_equal false, @user.respond_to?(:encrypted_name) - end + should "encrypt simple string" do + assert_equal @social_security_number_encrypted, Symmetric::Encryption.encrypt(@social_security_number) + end - should "have unencrypted values" do - assert_equal @bank_account_number, @user.bank_account_number - assert_equal @social_security_number, @user.social_security_number - end + should "decrypt string" do + assert_equal @social_security_number, Symmetric::Encryption.decrypt(@social_security_number_encrypted) + end - should "have encrypted values" do - assert_equal @bank_account_number_encrypted, @user.encrypted_bank_account_number - assert_equal @social_security_number_encrypted, @user.encrypted_social_security_number + should "determine if string is encrypted" do + assert_equal true, Symmetric::Encryption.encrypted?(@social_security_number_encrypted) + assert_equal false, Symmetric::Encryption.encrypted?(@social_security_number) + end end - - should "encrypt" do - user = User.new - user.bank_account_number = @bank_account_number - assert_equal @bank_account_number, user.bank_account_number - assert_equal @bank_account_number_encrypted, user.encrypted_bank_account_number - end - - should "allow lookups using unencrypted or encrypted column name" do - user_id = @user.save! - - inq = User.find_by_bank_account_number(@bank_account_number) - assert_equal @bank_account_number, inq.bank_account_number - assert_equal @bank_account_number_encrypted, inq.encrypted_bank_account_number - - User.delete(user_id) - end - - should "return encrypted attributes for the class" do - expect = {:social_security_number=>:encrypted_social_security_number, :bank_account_number=>:encrypted_bank_account_number, :check_bank_account_number=>:encrypted_check_bank_account_number} - result = User.encrypted_attributes - expect.each_pair {|k,v| assert_equal expect[k], result[k]} - end - - should "return encrypted keys for the class" do - expect = [:social_security_number, :bank_account_number, :check_bank_account_number] - result = User.encrypted_keys - expect.each {|val| assert_equal true, result.include?(val)} - - # Also check encrypted_attribute? - expect.each {|val| assert_equal true, User.encrypted_attribute?(val)} - end - - should "return encrypted columns for the class" do - expect = [:encrypted_social_security_number, :encrypted_bank_account_number, :encrypted_check_bank_account_number] - result = User.encrypted_columns - expect.each {|val| assert_equal true, result.include?(val)} - - # Also check encrypted_column? - expect.each {|val| assert_equal true, User.encrypted_column?(val)} - end - end + end