/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include "Swiften/Client/StanzaChannel.h" namespace Swift { class DummyStanzaChannel : public StanzaChannel { public: DummyStanzaChannel() : available_(true) {} virtual void sendStanza(boost::shared_ptr stanza) { sentStanzas.push_back(stanza); } void setAvailable(bool available) { available_ = available; onAvailableChanged(available); } virtual void sendIQ(boost::shared_ptr iq) { sentStanzas.push_back(iq); } virtual void sendMessage(boost::shared_ptr message) { sentStanzas.push_back(message); } virtual void sendPresence(boost::shared_ptr presence) { sentStanzas.push_back(presence); } virtual String getNewIQID() { return "test-id"; } virtual bool isAvailable() const { return available_; } virtual bool getStreamManagementEnabled() const { return false; } template bool isRequestAtIndex(size_t index, const JID& jid, IQ::Type type) { if (index >= sentStanzas.size()) { return false; } boost::shared_ptr iqStanza = boost::dynamic_pointer_cast(sentStanzas[index]); return iqStanza && iqStanza->getType() == type && iqStanza->getTo() == jid && iqStanza->getPayload(); } template boost::shared_ptr getStanzaAtIndex(size_t index) { return boost::dynamic_pointer_cast(sentStanzas[index]); } std::vector > sentStanzas; bool available_; }; }