54 lines
1.3 KiB
Ruby
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
|
||
|
|