Newer
Older
libj / modules / libj / test / src / ut_term.cpp
#include <iostream>
#include <string>
#include <j/cppunit/cppunit.hpp>
#include <j/cppunit/assert.hpp>
#include <j/lang/errno.hpp>
#include <j/io/term.hpp>

using namespace j;
using namespace j::lang;
using namespace j::io;
using namespace j::cppunit;

class TermTest : public TestCase
{
public:
    TermTest() {}
    ~TermTest() {}
    void setUp() {}
    void tearDown() {}

    void testUp()
    {
        std::string_view value = Term::Cursor::UP(1);
        assertEquals("\x1b[1A", value.data());
    }
    void testDown()
    {
        std::string_view value = Term::Cursor::DOWN(123);
        assertEquals("\x1b[123B", value.data());
    }
    void testRight()
    {
        std::string_view value = Term::Cursor::RIGHT(23);
        assertEquals("\x1b[23C", value.data());
    }
    void testLeft()
    {
        std::string_view value = Term::Cursor::LEFT(5);
        assertEquals("\x1b[5D", value.data());
    }
    void testDownLine()
    {
        std::string_view value = Term::Cursor::DOWN_LINE(3);
        assertEquals("\x1b[3E", value.data());
    }
    void testUpLine()
    {
        std::string_view value = Term::Cursor::UP_LINE(345);
        assertEquals("\x1b[345F", value.data());
    }
    void testCol()
    {
        std::string_view value = Term::Cursor::COL(99);
        assertEquals("\x1b[99G", value.data());
    }
    void testMove()
    {
        std::string_view value = Term::Cursor::MOVE(10, 30);
        assertEquals("\x1b[10;30H", value.data());
    }
    void testScroll()
    {
        std::string_view value = Term::Cursor::SCROLL(130);
        assertEquals("\x1b[130S", value.data());
    }
    void testScrollR()
    {
        std::string_view value = Term::Cursor::SCROLL_R(7);
        assertEquals("\x1b[7T", value.data());
    }

    void suite()
    {
        RUN_TEST("term test UP", testUp);
        RUN_TEST("term test DOWN", testDown);
        RUN_TEST("term test RIGHT", testRight);
        RUN_TEST("term test LEFT", testLeft);
        RUN_TEST("term test DOWN_LINE", testDownLine);
        RUN_TEST("term test UP_LINE", testUpLine);
        RUN_TEST("term test COL", testCol);
        RUN_TEST("term test MOVE", testMove);
        RUN_TEST("term test SCROLL", testScroll);
        RUN_TEST("term test SCROLL_R", testScrollR);
    }
};