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