class XNM::Telegram::TestCore
This is a purely test-related class. It implements all of HTTPCore's functionality, but does not connect to the Telegram
API. Instead, it simply saves the last POST request, and simulates received requests, allowing testing.
Attributes
currentMessageID[R]
lastPostData[RW]
lastPostRequest[RW]
toReturn[RW]
Public Class Methods
new()
click to toggle source
# File lib/xnm/telegram/TestHTTPCore.rb, line 15 def initialize() prepare(); @receptors = Array.new(); end
Public Instance Methods
perform_post(postRequest, postData)
click to toggle source
# File lib/xnm/telegram/TestHTTPCore.rb, line 35 def perform_post(postRequest, postData) @lastPostRequest << postRequest; @lastPostData << postData; return @toReturn; end
prepare()
click to toggle source
# File lib/xnm/telegram/TestHTTPCore.rb, line 21 def prepare() @lastPostData = Array.new(); @lastPostRequest = Array.new(); @currentMessageID = rand(0..9999); @toReturn = { ok: true, result: { message_id: @currentMessageID } } end
simulate_send_packet(packet)
click to toggle source
# File lib/xnm/telegram/TestHTTPCore.rb, line 42 def simulate_send_packet(packet) @receptors.each do |r| r.handle_packet(packet); end end
simulate_sent_message(text, chatID: "test", reply_id: nil )
click to toggle source
# File lib/xnm/telegram/TestHTTPCore.rb, line 48 def simulate_sent_message(text, chatID: "test", reply_id: nil ) outData = Hash.new(); outData[:chat] = {id: chatID}; outData[:text] = text; if(reply_id) outData[:reply_to_message] = reply_id; end simulate_send_packet({message: outData}); end