Sha256: a4f834d9db817f40c85a559814a713c9d410aaba4b8d048dc122cd24bcd44226

Contents?: true

Size: 1.92 KB

Versions: 44

Compression:

Stored size: 1.92 KB

Contents

require File.join(File.dirname(__FILE__), '../test_helper')

describe HammerCLI::Output::RecordCollection do
  let(:data) { [1, 2, 3] }
  let(:meta) { { :total => 6, :page => 2, :per_page => 3, :subtotal => 5,
          :search => 'name~=xx', :sort_by => 'name', :sort_order => 'ASC' } }
  let(:set) { HammerCLI::Output::RecordCollection.new(data, meta) }

  it "should keep records and its meta data" do
    set.must_equal data
    set.meta.total.must_equal 6
    set.meta.subtotal.must_equal 5
    set.meta.total.must_equal 6
    set.meta.page.must_equal 2
    set.meta.per_page.must_equal 3
    set.meta.search.must_equal 'name~=xx'
    set.meta.sort_by.must_equal 'name'
    set.meta.sort_order.must_equal 'ASC'
  end

  it "should wrap the data into list" do
    record = { :key => :value, :key2 => :value }
    rs = HammerCLI::Output::RecordCollection.new(record)
    rs.must_be_kind_of Array
  end

  it "sould accept MetaData as option" do
    metadata = HammerCLI::Output::MetaData.new(meta)
    set = HammerCLI::Output::RecordCollection.new(data, :meta => metadata)
    set.meta.must_equal metadata
    set.meta.total.must_equal 6
  end
end

describe HammerCLI::Output::MetaData do

  let(:meta) { HammerCLI::Output::MetaData.new(:total => "6", :page => "2", :per_page => "3", :subtotal => "5") }

  it "converts numeric metadata to numbers" do
    meta.total.must_equal 6
    meta.page.must_equal 2
    meta.per_page.must_equal 3
    meta.subtotal.must_equal 5
  end

  describe "pagination_set?" do
    let(:pagination_data) { { :total => 6, :page => 2, :per_page => 3, :subtotal => 5 } }

    it "can tell if pagination data are set" do
      meta.pagination_set?.must_equal true
    end

    it "can tell if pagination data are not set" do
      pagination_data.keys.each do |key|
        meta = HammerCLI::Output::MetaData.new(pagination_data.clone.reject { |k| k == key })
        meta.pagination_set?.must_equal false
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
hammer_cli-3.7.0 test/unit/output/record_collection_test.rb
hammer_cli-3.5.1 test/unit/output/record_collection_test.rb
hammer_cli-3.6.0 test/unit/output/record_collection_test.rb
hammer_cli-3.5.0 test/unit/output/record_collection_test.rb
hammer_cli-3.4.0 test/unit/output/record_collection_test.rb
hammer_cli-3.3.0 test/unit/output/record_collection_test.rb
hammer_cli-3.2.0 test/unit/output/record_collection_test.rb
hammer_cli-3.1.1 test/unit/output/record_collection_test.rb
hammer_cli-3.0.2 test/unit/output/record_collection_test.rb
hammer_cli-3.1.0 test/unit/output/record_collection_test.rb
hammer_cli-3.0.1 test/unit/output/record_collection_test.rb
hammer_cli-3.0.0 test/unit/output/record_collection_test.rb
hammer_cli-2.5.1 test/unit/output/record_collection_test.rb
hammer_cli-2.5.0 test/unit/output/record_collection_test.rb
hammer_cli-2.3.1 test/unit/output/record_collection_test.rb
hammer_cli-2.4.0 test/unit/output/record_collection_test.rb
hammer_cli-2.3.0 test/unit/output/record_collection_test.rb
hammer_cli-2.2.1 test/unit/output/record_collection_test.rb
hammer_cli-2.1.2 test/unit/output/record_collection_test.rb
hammer_cli-2.2.0 test/unit/output/record_collection_test.rb