Sha256: 3cbdf87c7166b26b9e2229583f466c4b3135d9a9397a8e603b2573fff341611a

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

require "spec_helper"

module Hexx
  class Service
    describe Invalid do

      describe ".new" do

        subject { Invalid }

        it "fails if no arguments given" do
          expect { subject.new }.to raise_error { ArgumentError }
        end

        it "fails unless given argument is a service" do
          expect { subject.new "wrong" }.to raise_error { ArgumentError }
        end

        it "initializes the #service" do
          expect { subject.new Service.new }.not_to raise_error
        end
      end

      describe "#messages" do

        let(:service) { Service.new }
        before do
          allow(service).to receive_message_chain(:errors, :values)
            .and_return [%w(1 2)]
        end
        subject { Invalid.new(service).messages }

        it "returns a list of messages" do
          expect(subject.map(&:class).uniq).to eq [Service::Message]
          expect(subject.map(&:type).uniq).to eq ["error"]
          expect(subject.map(&:text).uniq).to eq %w(1 2)
        end
      end

      describe "#message" do

        let(:service) { Service.new }
        subject       { Invalid.new(service).message }

        it "returns a proper message" do
          expect(subject).to eq "Service invalid: #{ service.inspect }"
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
hexx-3.2.0 spec/hexx/service/invalid_spec.rb
hexx-3.1.0 spec/hexx/service/invalid_spec.rb
hexx-3.0.0 spec/hexx/service/invalid_spec.rb
hexx-2.2.0 spec/hexx/service/invalid_spec.rb
hexx-2.1.0 spec/hexx/service/invalid_spec.rb
hexx-2.0.2 spec/hexx/service/invalid_spec.rb
hexx-2.0.1 spec/hexx/service/invalid_spec.rb
hexx-2.0.0 spec/hexx/service/invalid_spec.rb