File: pretty_print_spec.rb

package info (click to toggle)
ruby-immutable-ruby 0.1.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,852 kB
  • sloc: ruby: 16,556; makefile: 4
file content (34 lines) | stat: -rw-r--r-- 1,030 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'spec_helper'
require 'pp'
require 'stringio'

describe Immutable::Hash do
  describe '#pretty_print' do
    let(:hash) { Immutable::Hash.new(DeterministicHash.new(1,1) => 'tin', DeterministicHash.new(2,2) => 'earwax', DeterministicHash.new(3,3) => 'neanderthal') }
    let(:stringio) { StringIO.new }


    it 'prints the whole Hash on one line if it fits' do
      PP.pp(hash, stringio, 80)
      stringio.string.chomp.should == 'Immutable::Hash[1 => "tin", 2 => "earwax", 3 => "neanderthal"]'
    end

    it 'prints each key/val pair on its own line, if not' do
      PP.pp(hash, stringio, 20)
      stringio.string.chomp.should == 'Immutable::Hash[
 1 => "tin",
 2 => "earwax",
 3 => "neanderthal"]'
    end

    it 'prints keys and vals on separate lines, if space is very tight' do
      PP.pp(hash, stringio, 15)
      # the trailing space after "3 =>" below is needed, don't remove it
      stringio.string.chomp.should == 'Immutable::Hash[
 1 => "tin",
 2 => "earwax",
 3 => 
  "neanderthal"]'
    end
  end
end