PH Logo
Logo intepreter modeled after UCB Logo.
/Users/paul/Documents/phlogo/core/resttest.cpp
00001 #define BOOST_TEST_MAIN
00002 #include <boost/test/unit_test.hpp>
00003 
00004 #include "Interpreter.h"
00005 #include "Console.h"
00006 #include "World.h"
00007 #include "Thing.h"
00008 #include "RestProcessor.h"
00009 #include "RestOutput.h"
00010 
00011 using namespace std;
00012 using namespace phlogo;
00013 
00014 class TestRestOutput : public RestOutput {
00015     
00016 public:
00017     virtual void output(const std::string &s) {
00018         _s = s;
00019     }
00020     
00021     string getString() {
00022         return _s;
00023     }
00024     
00025 private:
00026     string _s;
00027 };
00028 
00029 BOOST_AUTO_TEST_CASE( testfile )
00030 {
00031     TestRestOutput out;
00032     BOOST_CHECK(!RestProcessor::getInstance()->process("/test.html", &out));
00033 }
00034 
00035 BOOST_AUTO_TEST_CASE( testcode )
00036 {
00037     TestRestOutput out;
00038     BOOST_CHECK(RestProcessor::getInstance()->process("/logo/?cmd=cs print [hello world]", &out));
00039     BOOST_CHECK_EQUAL(out.getString(), "[[{c:0},{o:['hello world']}],[{m:[100,100]}]]");
00040 }
00041 
00042 BOOST_AUTO_TEST_CASE( defun )
00043 {
00044     TestRestOutput out;
00045     BOOST_CHECK(RestProcessor::getInstance()->process("/defun/?name=box", &out));
00046     BOOST_CHECK_EQUAL(out.getString(), "[[{o:['defining function box']}],[]]");
00047     BOOST_CHECK(RestProcessor::getInstance()->process("/logo/?cmd=repeat 4 [fd 50 rt 90]", &out));
00048     BOOST_CHECK_EQUAL(out.getString(), "[[],[]]");
00049     BOOST_CHECK(RestProcessor::getInstance()->process("/end/?", &out));
00050     BOOST_CHECK_EQUAL(out.getString(), "[[{o:['function defined']}],[]]");
00051     BOOST_CHECK(RestProcessor::getInstance()->process("/logo/?cmd=box", &out));
00052     BOOST_CHECK_EQUAL(out.getString(), "[[],[{l:[100,50]},{s:0},{l:[150,50]},{s:0},{l:[150,100]},{s:0},{l:[100,100]},{s:0}]]");
00053 }
00054 
 All Classes Functions