leoniv/ass_launcher

View on GitHub
examples/v8i_file_example.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'example_helper'

module Examples
  module V8iFile
    require 'ass_launcher'

    describe 'Build new v8i file' do

      it 'V8i section must have :Connect field' do
        proc do
          AssLauncher::Support::V8iSection\
            .new('Info base 1', {})
        end.must_raise(ArgumentError)
      end

      # Build v8i section
      v8i_section = AssLauncher::Support::V8iSection\
        .new('Info base 1', 'Connect' => 'File="path"') do |s|
        s[:ClientConnectionSpeed] = :Normal
        s[:App] = :Auto
      end

      it 'V8i section is case insensitive' do
        v8i_section[:app].must_equal :Auto
      end

      it 'For v8i section a Symbol key equal a String key' do
        v8i_section[:app].must_equal :Auto
        v8i_section[:app.to_s].must_equal :Auto
      end

      # Write section to file
      v8i_file = File.join(Dir.tmpdir,'v8i_file_example.v8i')
      # v8i file may contain many of sections
      AssLauncher::Support::V8iFile.save(v8i_file, [v8i_section])


      it 'File exists and valid' do
        File.read(v8i_file).must_equal "[Info base 1]\r\n"\
          "Connect=File=\"path\"\r\n"\
          "ClientConnectionSpeed=Normal\r\n"\
          "App=Auto\r\n"\
          "\r\n"
        FileUtils.rm_f v8i_file if File.exist? v8i_file
      end
    end

    describe 'Use exists v8i file' do
      extend AssLauncher::Api

      # Read v8i file
      v8i_sections = load_v8i(Examples::TEMPLATES::V8I)

      # Get sections contained in v8i file
      v8i_ib1 = v8i_sections.find {|s| s.caption == 'Info base 1'}
      v8i_ib2 = v8i_sections.find {|s| s.caption == 'Info base 2'}

      it 'v8i file contain sections describe two 1C:Enterprise applications' do
        v8i_ib1.must_be_instance_of AssLauncher::Support::V8iSection
        v8i_ib2.must_be_instance_of AssLauncher::Support::V8iSection
      end

      # Build connection string for 'Info base 1'
      conns_ib1 = cs(v8i_ib1[:connect])

      it 'Server connection string' do
        conns_ib1.must_be_instance_of\
          AssLauncher::Support::ConnectionString::Server
      end
    end
  end
end