Sha256: 0cdd52446eea2b05ef4f51e5250a601a2fbc090960bf03ab82edd75241e06e6d

Contents?: true

Size: 1.98 KB

Versions: 26

Compression:

Stored size: 1.98 KB

Contents

require 'spec_helper'
require 'pact_broker/ui/view_models/relationship'

module PactBroker
  module UI
    module ViewDomain
      describe Relationship do

        let(:consumer) { instance_double("PactBroker::Domain::Pacticipant", name: 'Consumer Name')}
        let(:provider) { instance_double("PactBroker::Domain::Pacticipant", name: 'Provider Name')}
        let(:relationship) { PactBroker::Domain::Relationship.new(consumer, provider)}

        subject { Relationship.new(relationship) }

        its(:consumer_name) { should eq 'Consumer Name'}
        its(:provider_name) { should eq 'Provider Name'}
        its(:latest_pact_url) { should eq "/pacts/provider/Provider%20Name/consumer/Consumer%20Name/latest" }
        its(:consumer_group_url) { should eq "/groups/Consumer%20Name" }
        its(:provider_group_url) { should eq "/groups/Provider%20Name" }

        describe "<=>" do

          let(:relationship_model_4) { double("PactBroker::Domain::Relationship", consumer_name: "A", provider_name: "X") }
          let(:relationship_model_2) { double("PactBroker::Domain::Relationship", consumer_name: "a", provider_name: "y") }
          let(:relationship_model_3) { double("PactBroker::Domain::Relationship", consumer_name: "A", provider_name: "Z") }
          let(:relationship_model_1) { double("PactBroker::Domain::Relationship", consumer_name: "C", provider_name: "A") }

          let(:relationship_models) { [relationship_model_1, relationship_model_3, relationship_model_4, relationship_model_2] }
          let(:ordered_view_models) { [relationship_model_4, relationship_model_2, relationship_model_3, relationship_model_1] }

          let(:relationship_view_models) { relationship_models.collect{ |r| Relationship.new(r)} }

          it "sorts by consumer name then provider name" do
            expect(relationship_view_models.sort.collect{ |r| [r.consumer_name, r.provider_name]})
              .to eq([["A", "X"],["a","y"],["A","Z"],["C", "A"]])
          end

        end

      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
pact_broker-1.18.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.18.0.beta.1 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.17.2 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.17.1 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.17.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.16.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.15.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.14.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.13.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.12.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.11.2 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.11.1 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.11.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.10.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.9.3 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.9.2 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.9.1 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.9.0 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.9.0.rc1 spec/lib/pact_broker/ui/view_models/relationship_spec.rb
pact_broker-1.8.1 spec/lib/pact_broker/ui/view_models/relationship_spec.rb