Sha256: 6293830c6928f9e3cf67e226b2cbd1725f8ef7f03c900e59feb328cf4535f826

Contents?: true

Size: 1.74 KB

Versions: 11

Compression:

Stored size: 1.74 KB

Contents

require File.expand_path(File.dirname(__FILE__)) + '/unit_helper'

require 'lhm/printer'
require 'logger'



describe Lhm::Printer do
  include UnitHelper

  describe 'percentage printer' do

    before(:each) do
      @printer = Lhm::Printer::Percentage.new
    end

    it 'prints the percentage' do
      r, w = IO.pipe
      Lhm.logger = Logger.new(w)

      10.times do |i|
        @printer.notify(i, 10)
        assert_match(/#{i}\/10/, log_expression_message(r.gets))
      end
    end

    it 'always prints a bigger message' do
      @length = 0

      def assert_length(printer)
        new_length = printer.instance_variable_get(:@max_length)
        assert new_length >= @length
        @length = new_length
      end

      @printer.notify(10, 100)
      assert_length(@printer)
      @printer.notify(0, 100)
      assert_length(@printer)
      @printer.notify(1, 1000000)
      assert_length(@printer)
      @printer.notify(0, 0)
      assert_length(@printer)
      @printer.notify(0, nil)
      assert_length(@printer)
    end

    it 'prints the end message' do
      r, w = IO.pipe
      Lhm.logger = Logger.new(w)
      @printer.end

      assert_equal(log_expression_message(r.gets), "100% complete\n")
    end

    it 'prints the exception message' do
      r, w = IO.pipe
      Lhm.logger = Logger.new(w)
      e = StandardError.new('woops')
      @printer.exception(e)

      assert_equal(log_expression_message(r.gets), "failed: #{e}\n")
    end
  end

  describe 'dot printer' do

    before(:each) do
      @printer = Lhm::Printer::Dot.new
    end

    it 'prints the dots' do
      mock  = mock("output")
      mock.expects(:write).with('.').times(10)

      @printer.instance_variable_set(:@output, mock)
      10.times { @printer.notify }
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
lhm-shopify-4.4.2 spec/unit/printer_spec.rb
lhm-shopify-4.4.1 spec/unit/printer_spec.rb
lhm-shopify-4.4.0 spec/unit/printer_spec.rb
lhm-shopify-4.3.0 spec/unit/printer_spec.rb
lhm-shopify-4.2.3 spec/unit/printer_spec.rb
lhm-shopify-4.2.2 spec/unit/printer_spec.rb
lhm-shopify-4.2.1 spec/unit/printer_spec.rb
lhm-shopify-4.2.0 spec/unit/printer_spec.rb
lhm-shopify-4.1.1 spec/unit/printer_spec.rb
lhm-shopify-4.1.0 spec/unit/printer_spec.rb
lhm-shopify-4.0.0 spec/unit/printer_spec.rb