require 'spec_helper' require 'logger' describe CephStorage::StorageObject::XattrEnumerator do let(:config) { cluster_config } let(:spconfig) { spec_config } let(:cluster) { CephStorage::ClusterFactory.build config } let(:rule_id) { spconfig[:pool][:rule_id] } let(:pool_name) { spconfig[:pool][:name] } let(:pool) { cluster.pool(pool_name) } describe 'pool creation' do subject { pool } it 'should be able to create pool' do expect { subject.create(rule_id: rule_id) }.to_not raise_exception end it 'should be writable' do expect { pool.stat }.not_to raise_exception expect(pool.stat).to be_a Hash end end let(:object_name) { spconfig[:pool][:object_name] } let(:storage_object) { pool.storage_object(object_name) } describe 'Storage Object' do subject { storage_object } it 'should be writeable' do expect { subject.overwrite('some content') }.not_to raise_exception end end describe 'XattrEnumerator' do let(:xattr_name) { spconfig[:pool][:xattr_name] } let(:xattr_value) { spconfig[:pool][:xattr_value] } let(:xattr_enumerator) { storage_object.xattr_enumerator } subject { xattr_enumerator } it 'should be a CephRuby::XattrEnumerator' do expect(subject).to be_a ::CephStorage::StorageObject::XattrEnumerator end it 'should be a CephRuby::XattrEnumerator' do expect(subject).to be_a ::CephRuby::XattrEnumerator end it 'should have 0 xattrs' do expect(subject.inject(0) { |a, _e| a + 1 }).to be 0 end describe 'after populating' do before do 10.times do |i| storage_object.xattr("#{xattr_name}.#{i}").value = xattr_value end end it 'should have 10 xattrs' do expect(subject.inject(0) { |a, _e| a + 1 }).to be 10 end it 'should return CephStorage::Xattrs' do expect(subject.first).to be_a CephStorage::StorageObject::Xattr end end end describe 'pool deletion' do subject { pool } it 'should be able to delete pool' do expect { subject.destroy }.not_to raise_exception end end end