# encoding: utf-8

describe ServiceObjects::Base do

  let(:publisher) { Wisper::Publisher }
  let(:helpers)   { ServiceObjects::Helpers   }

  it "is Dependable" do
    expect(described_class).to be_kind_of helpers::Dependable
  end

  it "is Parameterized" do
    expect(described_class).to be_kind_of helpers::Parameterized
  end

  it "includes Messages helper" do
    expect(described_class).to include helpers::Messages
  end

  it "includes Parameters helper" do
    expect(described_class).to include helpers::Parameters
  end

  it "includes Validations helper" do
    expect(described_class).to include helpers::Validations
  end

  it "includes Exceptions helper" do
    expect(described_class).to include helpers::Exceptions
  end

  it "includes Wisper::Publisher" do
    expect(described_class).to include publisher
  end

  describe "#run" do

    it "is defined" do
      expect(subject).to respond_to(:run).with(0).arguments
    end
  end

end # describe ServiceObjects::Base