/** * @RDE_HEADER@ * ParseLineTest * $Id$ * $HeadURL$ * $Author$ * Created by Christian Fröbel, SLSE, 2017-06-19 */ #include "parse_line_test.h" #include using namespace AudioVideoManagement; /** * Special case that I could not cover with the data-driven approach. */ void ParseLineTest::testEmpty() { QByteArray line; const auto parts = AVSocket::parseLine(line); QCOMPARE(parts.size(), 0); } void ParseLineTest::test() { QFETCH(QByteArray, line); QFETCH(QByteArray, gluedParts); const auto expected = gluedParts.split(';'); const auto parts = AVSocket::parseLine(line); QCOMPARE(parts.size(), expected.size()); for (int i = 0; i < expected.size(); ++i) QCOMPARE(parts.at(i), expected.at(i)); } void ParseLineTest::test_data() { QTest::addColumn("line"); QTest::addColumn("gluedParts"); QTest::newRow("") << QByteArray("{}") << QByteArray(""); QTest::newRow("") << QByteArray("218 Video1 \"\" VIDEODIALOGSTATE") << QByteArray("218;Video1;;VIDEODIALOGSTATE"); QTest::newRow("") << QByteArray("218 \"Video1\" \"\" VIDEODIALOGSTATE") << QByteArray("218;Video1;;VIDEODIALOGSTATE"); QTest::newRow("") << QByteArray("218 \"Video 1\" \"\" VIDEODIALOGSTATE") << QByteArray("218;Video 1;;VIDEODIALOGSTATE"); QTest::newRow("") << QByteArray("218 \"Video \\\"1\\\"\" \"\" VIDEODIALOGSTATE") << QByteArray("218;Video \"1\";;VIDEODIALOGSTATE"); QTest::newRow("") << QByteArray("setvideoprofile Video1 \"1 {bldg_56: {CAM_UBEICE0001} {CAM_UBEICE0002} {CAM_UBEICE0003} {CAM_UBEICE0004}}\"") << QByteArray("setvideoprofile;Video1;1 {bldg_56: {CAM_UBEICE0001} {CAM_UBEICE0002} {CAM_UBEICE0003} {CAM_UBEICE0004}}"); QTest::newRow("") << QByteArray("{hello \" world}") << QByteArray("hello \" world"); // Was that intended? QTest::newRow("") << QByteArray("{") << QByteArray(""); QTest::newRow("") << QByteArray("\"") << QByteArray(""); // Oops, I guess that was not intended! QTest::newRow("") << QByteArray("setvideoprofile Video1 {bldg_56: {CAM_UBEICE0001} {CAM_UBEICE0002} {CAM_UBEICE0003} {CAM_UBEICE0004}}") << QByteArray("setvideoprofile;Video1;bldg_56: {CAM_UBEICE0001;CAM_UBEICE0002;CAM_UBEICE0003;CAM_UBEICE0004;}"); }