Sha256: 46df5b216cd408b76121e7e455a8b962f3e8c79f44f7a33ce1000942223cb59b

Contents?: true

Size: 1.93 KB

Versions: 2

Compression:

Stored size: 1.93 KB

Contents

require_relative 'test_helper'
require 'stringio'

# Unit Test for Symmetric::EncryptedStream
#
class WriterTest < Minitest::Test
  describe SymmetricEncryption::Writer do
    before do
      @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'
    end

    after do
      File.delete(@filename) if File.exist?(@filename)
    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

      assert_equal @data_len, written_len
      result = stream.string
      result.force_encoding('binary') if defined?(Encoding)
      assert_equal @data_encrypted, result
    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
      end
      assert_equal @data_len, written_len
    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
      end
      assert_equal @data_len, written_len
      assert_equal @data_encrypted, File.open(@filename, 'rb') { |f| f.read }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
symmetric-encryption-3.9.1 test/writer_test.rb
symmetric-encryption-3.9.0 test/writer_test.rb