rss-cli/src/tests.cpp

114 lines
3.8 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Tyler Perkins
// 7-23-21
// tests implementation
//
#include "tests.hpp"
using namespace rss_utils;
void rss_utils::testRSS() {
std::cout << "===== test RSS class =====" << std::endl;
std::string url1 = "https://www.feedforall.com/sample-feed.xml";
std::string bad_url = "https://www.not_a_real_link.com/";
//test default constructor
{
rss_utils::rss feed;
assert(feed.getURI() == "");
assert(feed.isOk() == false);
std::cout << "def cont tests passed!" << std::endl;
}
{
rss_utils::rss feed(url1);
assert(feed.getURI() == url1);
assert(feed.isOk() == true);
std::cout << "std::string& cont tests passed!" << std::endl;
}
{
rss_utils::rss feed(url1.c_str());
assert(feed.getURI() == url1);
assert(feed.isOk() == true);
std::cout << "char* cont tests passed!" << std::endl;
}
{
rss_utils::rss feed(url1);
rss_utils::rss feed2(feed);
assert(feed2.getURI() == url1);
assert(feed2.isOk() == true);
std::cout << "copy cont tests passed!" << std::endl;
}
{
rss_utils::rss feed(url1);
rss_utils::rss feed2 = feed;
assert(feed2.getURI() == url1);
assert(feed2.isOk() == true);
std::cout << "assignment operator tests passed!" << std::endl;
}
{
rss_utils::rss feed(url1);
rss_utils::rss* feed2 = feed.clone();
assert(feed2->getURI() == url1);
assert(feed2->isOk() == true);
std::cout << "clone functions tests passed!" << std::endl;
}
{
rss_utils::rss feed(url1);
feed.setURI(bad_url);
assert(feed.getURI() == bad_url);
assert(feed.isOk() == false);
std::cout << "std::string& setURI tests passed!" << std::endl;
}
{
rss_utils::rss feed;
feed.setURI(bad_url.c_str());
assert(feed.getURI() == bad_url);
assert(feed.isOk() == false);
std::cout << "char* setURI tests passed!" << std::endl;
}
/*
{
rss_utils::rss feed(url1);
rss_utils::item_map items = feed.getItems();
for(auto it = items.begin(); it != items.end(); ++it){
std::cout << "=== Item ===" << std::endl;
std::cout << "Item: " << (*it)["title"] << std::endl;
std::cout << "Description: " << (*it)["description"] << std::endl;
std::cout << "Link: " << (*it)["link"] << std::endl;
std::cout << "pubDate: " << (*it)["pubDate"] << std::endl;
}
std::cout << "=== Done with Items ===" << std::endl;
}
*/
std::cout << "===== test RSS class =====" << std::endl;
}
void rss_utils::testItems() {
std::cout << "===== test RSS Items =====" << std::endl;
std::string url1 = "https://www.feedforall.com/sample-feed.xml";
std::string bad_url = "https://www.not_a_real_link.com/";
{
rss_utils::rss feed(url1);
std::vector<rss_utils::item> items = feed.getItems();
//display items
std::cout << "===== Item =====" << std::endl;
for(auto it = items.begin(); it != items.end(); ++it){
std::cout << (*it).getTitle() << std::endl;
std::cout << (*it).getLink() << std::endl;
std::cout << (*it).getDescription() << std::endl;
std::cout << (*it).getAuthor() << std::endl;
std::cout << (*it).getCategory() << std::endl;
std::cout << (*it).getComments() << std::endl;
std::cout << (*it).getGuid() << std::endl;
std::cout << (*it).getPubDate() << std::endl;
std::cout << (*it).getSource() << std::endl;
std::cout << "===== Item =====" << std::endl;
}
}
std::cout << "===== test RSS Items =====" << std::endl;
}