Newer
Older
mbed-os / UNITTESTS / features / lorawan / lorawantimer / Test_LoRaWANTimer.cpp
@Antti Kauppila Antti Kauppila on 9 Dec 2019 1 KB Unittest configuration mechanism improved
/*
 * Copyright (c) 2018, Arm Limited and affiliates
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "gtest/gtest.h"
#include "LoRaWANTimer.h"

#include "equeue_stub.h"

using namespace events;

class Test_LoRaWANTimer : public testing::Test {
protected:
    LoRaWANTimeHandler *object;
    EventQueue *queue;

    virtual void SetUp()
    {
        queue = new EventQueue(3, NULL);
        object = new LoRaWANTimeHandler();
        object->activate_timer_subsystem(queue);
    }

    virtual void TearDown()
    {
        delete object;
        delete queue;
    }
};

TEST_F(Test_LoRaWANTimer, constructor)
{
    EXPECT_TRUE(object);
}

TEST_F(Test_LoRaWANTimer, get_current_time)
{
    lorawan_time_t tt = object->get_current_time();
    EXPECT_TRUE(0 == tt);
}

TEST_F(Test_LoRaWANTimer, get_elapsed_time)
{
    lorawan_time_t tt = object->get_elapsed_time(0);
    EXPECT_TRUE(0 == tt);
}

void my_callback()
{
}

TEST_F(Test_LoRaWANTimer, init)
{
    timer_event_t ev;
    memset(&ev, 0, sizeof(ev));
    object->init(ev, my_callback);
}

TEST_F(Test_LoRaWANTimer, start)
{
    equeue_stub.void_ptr = NULL;
    timer_event_t ev;
    memset(&ev, 0, sizeof(ev));
    object->start(ev, 10);
}

TEST_F(Test_LoRaWANTimer, stop)
{
    timer_event_t ev;
    memset(&ev, 0, sizeof(ev));
    ev.timer_id = 4;
    object->stop(ev);
    EXPECT_TRUE(ev.timer_id == 0);
}