test/writer_test.rb in symmetric-encryption-3.9.1 vs test/writer_test.rb in symmetric-encryption-4.0.0.beta3

- old
+ new

@@ -4,54 +4,75 @@ # Unit Test for Symmetric::EncryptedStream # class WriterTest < Minitest::Test describe SymmetricEncryption::Writer do before do - @data = [ + @data = [ "Hello World\n", "Keep this secret\n", 'And keep going even further and further...' ] - @data_str = @data.inject('') { |sum, str| sum << str } - @data_len = @data_str.length - @data_encrypted = SymmetricEncryption.cipher.binary_encrypt(@data_str, false, false, false) - @filename = '._test' + @data_str = @data.inject('') { |sum, str| sum << str } + @data_len = @data_str.length + @file_name = '._test' + @source_file_name = '._source_test' end after do - File.delete(@filename) if File.exist?(@filename) + File.delete(@file_name) if File.exist?(@file_name) + File.delete(@source_file_name) if File.exist?(@source_file_name) end - it 'encrypt to string stream' do - stream = StringIO.new - file = SymmetricEncryption::Writer.new(stream, header: false, random_key: false, random_iv: false) - written_len = @data.inject(0) { |sum, str| sum + file.write(str) } - assert_equal @data_len, file.size - file.close + describe '#write' do + it 'encrypt to string stream' do + stream = StringIO.new + file = SymmetricEncryption::Writer.new(stream) + written_len = @data.inject(0) { |sum, str| sum + file.write(str) } + assert_equal @data_len, file.size + file.close - assert_equal @data_len, written_len - result = stream.string - result.force_encoding('binary') if defined?(Encoding) - assert_equal @data_encrypted, result + assert_equal @data_len, written_len + assert_equal @data_str, SymmetricEncryption::Reader.read(StringIO.new(stream.string)) + end end - it 'encrypt to string stream using .open' do - written_len = 0 - stream = StringIO.new - SymmetricEncryption::Writer.open(stream) do |file| - written_len = @data.inject(0) { |sum, str| sum + file.write(str) } - assert_equal @data_len, file.size + describe '.open' do + it 'encrypt to stream' do + written_len = 0 + stream = StringIO.new + SymmetricEncryption::Writer.open(stream) do |file| + written_len = @data.inject(0) { |sum, str| sum + file.write(str) } + assert_equal @data_len, file.size + end + assert_equal @data_len, written_len end - assert_equal @data_len, written_len + + it 'encrypt to file' do + written_len = nil + SymmetricEncryption::Writer.open(@file_name) do |file| + written_len = @data.inject(0) { |sum, str| sum + file.write(str) } + assert_equal @data_len, file.size + end + assert_equal @data_len, written_len + assert_equal @data_str, SymmetricEncryption::Reader.read(@file_name) + end end - it 'encrypt to file using .open' do - written_len = nil - SymmetricEncryption::Writer.open(@filename, header: false, random_key: false, random_iv: false) do |file| - written_len = @data.inject(0) { |sum, str| sum + file.write(str) } - assert_equal @data_len, file.size + describe '.encrypt' do + it 'stream' do + target_stream = StringIO.new + source_stream = StringIO.new(@data_str) + source_bytes = SymmetricEncryption::Writer.encrypt(source: source_stream, target: target_stream) + assert_equal @data_len, source_bytes + assert_equal @data_str, SymmetricEncryption::Reader.read(StringIO.new(target_stream.string)) end - assert_equal @data_len, written_len - assert_equal @data_encrypted, File.open(@filename, 'rb') { |f| f.read } + + it 'file' do + File.open(@source_file_name, 'wb') { |f| f.write(@data_str) } + source_bytes = SymmetricEncryption::Writer.encrypt(source: @source_file_name, target: @file_name) + assert_equal @data_len, source_bytes + assert_equal @data_str, SymmetricEncryption::Reader.read(@file_name) + end end + end end