Sha256: 67c162dfd00599e3af0e4716bf7572ee8bbc21d00849e3e4d7be7579ee63acf5

Contents?: true

Size: 1.48 KB

Versions: 1

Compression:

Stored size: 1.48 KB

Contents

require 'rubygems'

require 'helper'
require 'stringio'

class MockNotifier < ::RiotNotifier::Base
  def initialize
    super(StringIO.new)
  end

  def notify(color, msg)
    [ color, msg ]
  end
end

context "RiotNotifier" do
  context "with MockNotifier" do
    setup { MockNotifier.new }

    asserts("displays failure in red") { topic.fail("desc", "failed") }.equals([:red, "FAILURE: failed"])
    asserts("displays error in red") { topic.error("desc", "errored") }.equals([:red, "ERROR: errored"])
    asserts("doesn't display results with bad results") do
      topic.report("desc", [:fail, "failure"])
      topic.report("desc", [:error, "error"])
      topic.results(23.0)
    end.nil

    context "displays results without bad results" do
      asserts("in green") do
        topic.results(0.0).first
      end.equals(:green)
      asserts("correctly") do
        topic.results(0.0).last
      end.matches(/0 passes, 0 failures, 0 errors in 0.000000 seconds/)
    end
  end # with MockNotifier

  context "with RedgreenNotifier" do
    setup do
      klass = RiotNotifier::RedgreenNotifier.dup
      klass.class_eval do
        def exec(string)
          string
        end
      end
      klass.new
    end

    asserts("notify green hello world") { topic.notify(:red, "hello world") }.matches(/red "hello world"/)
    asserts("escape <") { topic.notify(:red, "<Topic>") }.matches(/&lt;Topic>/)
    asserts("quote double quotes") { topic.notify(:red, %{"errored"}) }.matches(/\\"errored\\"/)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
riot_notifier-0.0.3 test/test_riot_notifier.rb