cartodb/services/data-repository/spec/unit/filesystem/local_spec.rb
2020-06-15 10:58:47 +08:00

54 lines
1.3 KiB
Ruby

require 'minitest/autorun'
require 'stringio'
require_relative '../../../filesystem/local'
include DataRepository::Filesystem
describe Local do
before do
@data = StringIO.new(Time.now.to_f.to_s)
@path = File.join( (0..2).map { Time.now.to_f.to_s } )
@prefix = File.join(Local::DEFAULT_PREFIX, Time.now.to_i.to_s)
end
after do
@data.close
FileUtils.rmtree(@prefix)
FileUtils.rmtree(Local::DEFAULT_PREFIX)
end
describe '#initialize' do
it 'sets the storage prefix to Local::DEFAULT_PREFIX by default' do
File.exists?( File.join(Local::DEFAULT_PREFIX, @path) ).must_equal false
path = Local.new.store(@path, @data)
File.exists?( File.join(Local::DEFAULT_PREFIX, @path) ).must_equal true
end
end #initialize
describe '#store' do
it 'stores data in the specified path' do
filesystem = Local.new(@prefix)
path = filesystem.store(@path, @data)
@data.rewind
stored_data = File.open( File.join(@prefix, path) )
stored_data.read.must_equal @data.read
end
end #store
describe '#fetch' do
it 'retrieves data from the specified path' do
filesystem = Local.new(@prefix)
path = filesystem.store(@path, @data)
@data.rewind
stored_data = Local.new(@prefix).fetch(path)
stored_data.read.must_equal @data.read
end
end #fetch
end # Local