Sha256: cc4b44b8481e693371aa74972ca6c3476669bc2a0f3ff9013dbd709f99f792fd

Contents?: true

Size: 1.68 KB

Versions: 4

Compression:

Stored size: 1.68 KB

Contents

require 'integration_spec_helper'

describe 'Folders operations' do

  if account_file_exists?

    before(:all) do
      @name = "folder_#{rand.denominator}_#{rand.denominator}"
      @sub_folder_name = "folder_#{rand.denominator}_#{rand.denominator}"
      @storage = login
    end

    # Note: node searching is traversal
    def find_folder(name)
      @storage.nodes.find { |f| f.type == :folder && f.name == name }
    end

    context 'when #create_folder is called on a node' do

      it 'creates a new folder under that node' do
        folder = @storage.root.create_folder(@name)
        expect(folder.name).to eql @name
        expect(folder.parent_handle).to eq @storage.root.handle
      end
    end

    context 'searching for a folder by its name' do

      it 'returns the matching folder' do
        expect(find_folder(@name).name).to eql @name
      end
    end

    context "when #create_folder under created folder" do

      it "creates a new folder under created folder" do
        parent_folder = find_folder(@name)

        sub_folder = parent_folder.create_folder(@sub_folder_name)

        expect(parent_folder.folders.first.name).to eql @sub_folder_name
        expect(sub_folder.parent_handle).to eql parent_folder.handle
      end
    end

    context 'when #delete is called on a folder node' do

      it 'deletes sub folder' do
        expect(find_folder(@sub_folder_name).delete).to eql 0
      end

      it 'deletes the folder' do
        expect(find_folder(@name).delete).to eql 0
      end

      it 'does not find the folder (and its subfolder) anymore' do
        expect(find_folder(@name)).to be_nil
        expect(find_folder(@sub_folder_name)).to be_nil
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rmega-0.1.7 spec/integration/folder_operations_spec.rb
rmega-0.1.6 spec/integration/folder_operations_spec.rb
rmega-0.1.5 spec/integration/folder_operations_spec.rb
rmega-0.1.4 spec/integration/folder_operations_spec.rb