Sha256: aae74397eafc3356c8b5786c1db7ef595972c2627016349988af82c86d767173

Contents?: true

Size: 1.75 KB

Versions: 1

Compression:

Stored size: 1.75 KB

Contents

# -*- coding: utf-8 -*-

require 'spec_helper.rb'

module GitObjectBrowser::Models
  describe IndexTreeExtension do

    let(:input) { File.open(File.join(FIXTURES_DIR, 'git/indexes', infile)) }
    subject { Index.new(input) }
    after { input.close if input && ! input.closed? }

    context 'when tree extension exists' do
      let(:infile) { '001' }

      it 'should parse extension signature and length' do
        data = subject.parse.to_hash
        tree = data['extensions'][0]
        tree['signature'].should eq 'TREE'
        tree['total_length'].should eq 25
      end

      it 'should parse entries' do
        entries = subject.parse.to_hash['extensions'][0]['entries']
        entries.length.should eq 1
        entry = entries.first
        entry['sha1'].should eq 'c36491256978d26c08cd7aa97eee0f5631f96659'
        entry['entry_count'].should eq 2
        entry['subtree_count'].should eq 0
      end
    end

    context 'when extension includes no entries' do
      let(:infile) { '002-empty-tree-extension' }

      it 'should parse extension signature and length' do
        data = subject.parse.to_hash
        tree = data['extensions'][0]
        tree['signature'].should eq 'TREE'
        tree['total_length'].should eq 6
      end

      it 'should return -1 entry_count' do
        entries = subject.parse.to_hash['extensions'][0]['entries']
        entries.length.should eq 1
        entry = entries.first
        entry['entry_count'].should eq -1
        entry['subtree_count'].should eq 0
        entry['path_component'].should eq ''
        entry['sha1'].should be_nil
      end

      it 'return correct hash' do
        data = subject.parse.to_hash
        data['sha1'].should eq 'ad7408a5d4e6050d3b95c21d260ae568b24e4d19'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
git-object-browser-0.0.2 spec/git-object-browser/models/index_tree_extension_spec.rb