Sha256: 26b7153264a2c7a919caa338b661ae8712e2c5cd3ae0f33ccefa9e709d84b893

Contents?: true

Size: 1.81 KB

Versions: 24

Compression:

Stored size: 1.81 KB

Contents

require 'flydata/source_mysql/generate_source_dump'

module Flydata
module SourceMysql

describe GenerateSourceDump do
  let(:subject_object) { described_class.new(source, dp, options) }

  let(:source) { double('source') }
  before do
    allow(source).to receive(:de).and_return(de)
  end
  let(:dp) { double('dp') }
  let(:options) { double('options') }

  let(:de) { {
    "mysql_data_entry_preference" => {
      "host" => "foo",
      "port" => 1234,
      "tables" => all_tables,
    }
  } }

  let(:all_tables) { %w|a b c d| + partial_tables }
  let(:partial_tables) { %w|e f| }
  let(:file_path) { double('file_path') }
  let(:src_pos_callback) { Proc.new{} }
  let(:db_size_check) { double('db_size_check') }
  let(:size) { double('size') }

  let(:options_with_partial_tables) {
    prefs = de['mysql_data_entry_preference'].clone
    prefs["tables"] = partial_tables
    prefs
  }

  describe '#dump_size' do
    subject { subject_object.dump_size(partial_tables) }

    it 'creates DatabaseSizeCheck object with correct parameter' do
      expect(Parser::DatabaseSizeCheck).to receive(:new).
        with(options_with_partial_tables).and_return(db_size_check)
      expect(db_size_check).to receive(:get_db_bytesize).and_return(size)

      expect(subject).to eq size
    end
  end

  describe '#dump' do
    subject { subject_object.dump(partial_tables, file_path, &src_pos_callback) }

    let(:dump_generator) { double('dump_generator') }
    before do
      allow(dump_generator).to receive(:dump)
    end

    it 'creates dump_generator with correct parameters' do
      expect(Parser::MysqlDumpGeneratorNoMasterData).to receive(:new).
        with(options_with_partial_tables).and_return(dump_generator)
      expect(dump_generator).to receive(:dump).
        with(file_path, &src_pos_callback)

      subject
    end
  end
end

end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
flydata-0.7.12 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.11 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.10 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.9 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.8 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.7 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.6 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.5 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.4 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.2.1 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.2 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.1 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.7.0 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.14 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.13 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.12 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.11 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.10 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.9 spec/flydata/source_mysql/generate_source_dump_spec.rb
flydata-0.6.8 spec/flydata/source_mysql/generate_source_dump_spec.rb