I'm upgrading ruby version from 1.9.3 to 2.0.0, however, when version ruby 2.0.0, it's failed as below:
undefined method `ancestors' for #<Delayed::Backend::ActiveRecord::Job:0x00557c667a4c10>
Here my test case:
it 'responds successfully when params is valid and allow_reply_all of bbs_message equal 1' do
request.env['Access-Token'] = 'token_key'
delayed_job = XMPPBbsChatroomSync.delay(queue: 'xmpp_request')
xmpp_bbs_chatroom_sync = class_double(XMPPBbsChatroomSync).as_stubbed_const(delay: true)
expect(delayed_job).to receive(:delete_users).with(params_queue).and_return(true)
expect(xmpp_bbs_chatroom_sync).to receive(:delay)
.with(queue: 'xmpp_request').and_return(delayed_job)
expect do
get :get, type: 'delete', access_token: 'token_key', bbs_message_id: '2'
bbs_message_support.reload
end.to change(bbs_message_support, :is_deleted).from(false).to(true)
expect(response.status).to eq 200
expect(response.content_type).to eq 'application/json'
expect(response.body).to eq msg_success.to_json
end
it is failed in code line: expect(delayed_job).to receive(:delete_users).with(params_queue).and_return(true)
In ruby version 1.9.3, it's still pass, so anyone help me ?? thanks for your attention.
here my code in XMPPBbsChatroomSync
require "net/http"
require "uri"
require "octopus_http_helper"
class XMPPBbsChatroomSync
@http_helper = OctopusHttpHelper.new(XMPP_ADDRESS)
@port = XMPP_PORT
@timeout = 10 # second
@jid = XMPP_ADDRESS_FOR_JID
@path = XMPP_BBS_CHATROOM_SYNC_PATH
@servicename_path = XMPP_BBS_CHATROOM_SYNC_SERVICENAME_PATH
@basic_authorize = XMPP_REST_API_BASIC_AUTH
class << self
def delete_users(params)
response = @http_helper.until_success { |address|
params[:room_ids].each { |room_id|
params[:user_ids].each { |user_id|
http = Net::HTTP.new(address, @port)
request = Net::HTTP::Delete.new("#{@path}/#{room_id}/owners/#{user_id}@#{@jid}?servicename=muc", 'Authorization' => @basic_authorize)
unless response.kind_of? Net::HTTPSuccess
raise 'DeleteUserFromChatroomError'
end
}
}
}
end
end
end