#include #include #include #include "RefPtr.h" using namespace std; template class Queue { private: std::deque< RefPtr > _queue; public: void Add(RefPtr item) { _queue.push_front(item); } //void Remove(T item); RefPtr GetNext() { if (_queue.empty()) { return RefPtr(); } else { return _queue.back(); } } //T GetByString(std::string url); }; class A_queue : public CxxTest::TestSuite { public: void Should_by_empty_by_default() { Queue queue; TS_ASSERT(!queue.GetNext().IsAssigned()); } void Should_allow_to_add_items() { Queue queue; queue.Add(RefPtr(new string("item"))); TS_ASSERT(queue.GetNext().IsAssigned()); TS_ASSERT_EQUALS("item", *queue.GetNext()); } };