require 'spec_helper'

describe Arpa::Services::Roles::RoleManagerCreator, type: :service, fast: true do
  let(:role_creator) { double }
  let(:params)           { { role: { name: 'role_name', description: 'role_description', action_ids: [1, 2] } } }
  let(:success_proc)     { ->(r) {} }
  let(:callback)         { { success: success_proc, fail: ->(e) { raise e } } }

  let(:setup_creators) do
    allow(Arpa::Services::Roles::Create::RoleCreator).to receive(:new).and_return(role_creator)
  end

  let(:setup_creators_methods) do
    allow(role_creator).to receive(:create)
  end

  let(:result) { subject.create params, callback }

  before do
    setup_creators
    setup_creators_methods
    allow(success_proc).to receive(:call)
    result
  end

  it 'role_creator should call :create with parameters' do
    expect(role_creator).to have_received(:create).with(params[:role]).once
  end
end