~aleteoryx/muditaos

ref: df6d7848f55a94cfeb999363169a6ccf297ce3e4 muditaos/module-services/service-cellular/tests/unittest_tetheringHandler.cpp -rw-r--r-- 3.5 KiB
df6d7848 — Lefucjusz [BH-2056] Add bedside lamp settings 1 year, 4 months 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <catch2/catch.hpp>

#include <module-services/service-cellular/src/TetheringHandler.hpp>
#include <module-cellular/at/cmd/QCFGUsbnet.hpp>

TEST_CASE("SMSSendHandler functionality")
{
    SECTION("RNDIS enabled")
    {
        auto handler             = cellular::service::TetheringHandler();
        handler.onIsRndisEnabled = []() -> at::qcfg::usbnet::Net { return at::qcfg::usbnet::Net::RNDIS; };

        auto result = handler.isRndisEnabled();
        REQUIRE(result == true);
    }

    SECTION("RNDIS disabled")
    {

        auto handler             = cellular::service::TetheringHandler();
        handler.onIsRndisEnabled = []() -> at::qcfg::usbnet::Net { return at::qcfg::usbnet::Net::ECM; };
        auto result              = handler.isRndisEnabled();

        REQUIRE(result == false);
    }

    SECTION("configure RNDIS enabled")
    {
        auto handler                = cellular::service::TetheringHandler();
        auto onIsRndisEnabledCalled = 0;
        handler.onIsRndisEnabled    = [&onIsRndisEnabledCalled]() -> at::qcfg::usbnet::Net {
            onIsRndisEnabledCalled++;
            return at::qcfg::usbnet::Net::RNDIS;
        };
        auto result = handler.configure();
        REQUIRE(result == true);
        REQUIRE(onIsRndisEnabledCalled == 1);
    }

    SECTION("configure RNDIS disabled")
    {
        auto handler                = cellular::service::TetheringHandler();
        auto onIsRndisEnabledCalled = 0;
        auto onEnableRndisCalled    = 0;
        handler.onIsRndisEnabled    = [&onIsRndisEnabledCalled]() -> at::qcfg::usbnet::Net {
            onIsRndisEnabledCalled++;
            return at::qcfg::usbnet::Net::ECM;
        };

        handler.onEnableRndis = [&onEnableRndisCalled]() -> bool {
            onEnableRndisCalled++;
            return true;
        };

        auto result = handler.configure();
        REQUIRE(result == false);
        REQUIRE(onIsRndisEnabledCalled == 1);
        REQUIRE(onEnableRndisCalled == 1);
    }

    SECTION("enable tethering")
    {
        auto handler                = cellular::service::TetheringHandler();
        auto onDisableUrcCalled     = 0;
        auto onSetPassthroughCalled = 0;
        handler.onDisableUrc        = [&onDisableUrcCalled]() -> bool {
            onDisableUrcCalled++;
            return true;
        };

        handler.onSetPassthrough = [&onSetPassthroughCalled](bool) { onSetPassthroughCalled++; };

        auto result = handler.enable();
        REQUIRE(result == true);
        REQUIRE(onDisableUrcCalled == 1);
        REQUIRE(onSetPassthroughCalled == 1);
    }

    SECTION("disable tethering")
    {
        auto handler                 = cellular::service::TetheringHandler();
        auto onEnableUrcCalled       = 0;
        auto onReadAllMessagesCalled = 0;
        auto onSetPassthroughCalled  = 0;
        handler.onEnableUrc          = [&onEnableUrcCalled]() -> bool {
            onEnableUrcCalled++;
            return true;
        };

        handler.onReadMessages = [&onReadAllMessagesCalled]() -> bool {
            onReadAllMessagesCalled++;
            return true;
        };

        handler.onSetPassthrough = [&onSetPassthroughCalled](bool) { onSetPassthroughCalled++; };

        auto result = handler.disable();
        REQUIRE(result == true);
        REQUIRE(onEnableUrcCalled == 1);
        REQUIRE(onSetPassthroughCalled == 1);
    }
}