52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
require_relative '../../lib/datasources'
|
|
require_relative '../doubles/json_to_csv_converter'
|
|
|
|
include CartoDB::Datasources
|
|
|
|
describe CSVFileDumper do
|
|
|
|
before(:each) do
|
|
end
|
|
|
|
describe '#dumping data' do
|
|
it 'tests streaming dump' do
|
|
output_stream_name ='/tmp/csv_file_dumper_test.csv'
|
|
|
|
File.unlink(output_stream_name) if File.exists?(output_stream_name)
|
|
|
|
converter_mock = CartoDB::TwitterSearch::Doubles::JSONToCSVConverter.new
|
|
|
|
dumper = CSVFileDumper.new(converter_mock, false)
|
|
|
|
dumper.buffer_size=2
|
|
|
|
input_filename_1 = 'stream_input_1'
|
|
input_filename_2 = 'stream_input_2'
|
|
input_data1 = File.read(File.join(File.dirname(__FILE__), "../fixtures/#{input_filename_1}"))
|
|
input_data2 = File.read(File.join(File.dirname(__FILE__), "../fixtures/#{input_filename_2}"))
|
|
|
|
names_list = [ input_filename_1, input_filename_2 ]
|
|
|
|
stream = File.open(output_stream_name, 'wb')
|
|
|
|
dumper.begin_dump(input_filename_1)
|
|
dumper.dump(input_filename_1, [input_data1])
|
|
dumper.end_dump(input_filename_1)
|
|
dumper.begin_dump(input_filename_2)
|
|
dumper.dump(input_filename_2, [input_data2])
|
|
dumper.end_dump(input_filename_2)
|
|
|
|
dumper.merge_dumps_into_stream(names_list, stream)
|
|
|
|
stream.close
|
|
|
|
data = File.read(output_stream_name)
|
|
data.should eq "\n#{input_data1}\n#{input_data2}\n"
|
|
File.unlink(output_stream_name)
|
|
|
|
end
|
|
end
|
|
|
|
end
|
|
|