~aleteoryx/muditaos

ref: e61a7d2dacc047b130058568b74b8f73a8edc10c muditaos/module-cellular/test/unittest_ATURCStream.cpp -rw-r--r-- 2.8 KiB
e61a7d2d — Lucjan Bryndza Merge branch 'EGD-5737-merge-master-to-exp-lbr-fix' 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <string>
#define CATCH_CONFIG_MAIN

#include <catch2/catch.hpp>
#include "Modem/ATURCStream.hpp"

TEST_CASE("URC AT Stream Parser")
{
    SECTION("One URC")
    {
        at::ATURCStream stream;
        stream.write("\r\n+URC: one\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 1);
        REQUIRE(*v.begin() == "\r\n+URC: one\r\n");
    }

    SECTION("One URC with junk at the begin")
    {
        at::ATURCStream stream;
        stream.write("ssss\r\n+URC: one\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 1);
        REQUIRE(*v.begin() == "\r\n+URC: one\r\n");
    }

    SECTION("test 1")
    {
        at::ATURCStream stream;
        stream.write("ssss\r\n+URC: one\r\n");
        stream.write("\r\n+URC: two\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 2);
        REQUIRE(*v.begin() == "\r\n+URC: one\r\n");
        v.pop_front();
        REQUIRE(*v.begin() == "\r\n+URC: two\r\n");
    }

    SECTION("test 2")
    {
        at::ATURCStream stream;
        stream.write("ssss\r\n+URC: one\r\n");
        stream.write("\r\n+URC: two\r\n");
        stream.write("\r\n+URC: 3,\"\r\n....");
        stream.write("....\"\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 3);
        REQUIRE(*v.begin() == "\r\n+URC: one\r\n");
        v.pop_front();
        REQUIRE(*v.begin() == "\r\n+URC: two\r\n");
        v.pop_front();
        REQUIRE(*v.begin() == "\r\n+URC: 3,\"\r\n........\"\r\n");
    }

    SECTION("test 4")
    {
        at::ATURCStream stream;
        stream.write("\r\n+CUSD: 0,\"Pozostalo Ci 24,84zl do wykorzystania do 2021-02-18 23:59:59. Dodatkowo w ramach "
                     "srodkow promocyjnych masz 0,00 zl ");
        stream.write("do wykorzystania do 2020-12-30 23:59:59.\",15\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 1);
    }

    SECTION("test 5")
    {
        at::ATURCStream stream;
        stream.write("\r\n+CUSD: 1,\"Play 24 Menu\r\n"
                     "1 Konto\r\n"
                     "2 Uslugi / Promocje\r\n"
                     "0 Wyjscie\r\n"
                     "Wiecej opcji znajdziesz w Play24 na http://24.play.pl\",0\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 1);
    }

    SECTION("test 6")
    {
        at::ATURCStream stream;
        stream.write("\r\n+CUSD: 1,\"Play 24 Menu\r\n"
                     "1 Konto\r\n");
        stream.write("2 Uslugi / Promocje\r\n"
                     "0 Wyjscie\r\n"
                     "Wiecej opcji znajdziesz w Play24 na http://24.play.pl\",0\r\n");
        auto v = stream.getURCList();
        REQUIRE(v.size() == 1);
    }
}