Color Oled(SSD1331) connect to STMicroelectronics Nucleo-F466

Dependencies:   ssd1331

Revision:
0:8fdf9a60065b
diff -r 000000000000 -r 8fdf9a60065b mbed-os/UNITTESTS/features/lorawan/loramacchannelplan/Test_LoRaMacChannelPlan.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os/UNITTESTS/features/lorawan/loramacchannelplan/Test_LoRaMacChannelPlan.cpp	Wed Oct 10 00:33:53 2018 +0000
@@ -0,0 +1,168 @@
+/*
+ * 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 "LoRaMacChannelPlan.h"
+#include "LoRaPHY_stub.h"
+#include "LoRaPHY.h"
+
+class my_LoRaPHY : public LoRaPHY
+{
+public:
+    my_LoRaPHY(){};
+
+    virtual ~my_LoRaPHY(){};
+};
+
+
+class Test_LoRaMacChannelPlan : public testing::Test {
+protected:
+    LoRaMacChannelPlan *object;
+    my_LoRaPHY phy;
+
+    virtual void SetUp()
+    {
+        object = new LoRaMacChannelPlan();
+        object->activate_channelplan_subsystem(&phy);
+
+        LoRaPHY_stub::uint8_value = 0;
+        LoRaPHY_stub::bool_counter = 0;
+        LoRaPHY_stub::lorawan_status_value = LORAWAN_STATUS_OK;
+        LoRaPHY_stub::uint16_value = 0;
+        memcpy(LoRaPHY_stub::bool_table, "0", 20);
+    }
+
+    virtual void TearDown()
+    {
+        delete object;
+    }
+};
+
+TEST_F(Test_LoRaMacChannelPlan, constructor)
+{
+    EXPECT_TRUE(object);
+}
+
+TEST_F(Test_LoRaMacChannelPlan, set_plan)
+{
+    lorawan_channelplan_t plan;
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = false;
+    EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_SERVICE_UNKNOWN);
+
+    plan.nb_channels = 1;
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::uint8_value = 0;
+    EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_PARAMETER_INVALID);
+
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::uint8_value = 10;
+    LoRaPHY_stub::lorawan_status_value = LORAWAN_STATUS_PARAMETER_INVALID;
+    EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_PARAMETER_INVALID);
+
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    plan.nb_channels = 2;
+    LoRaPHY_stub::lorawan_status_value = LORAWAN_STATUS_OK;
+    EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_OK);
+}
+
+TEST_F(Test_LoRaMacChannelPlan, get_plan)
+{
+    lorawan_channelplan_t plan;
+    channel_params_t params;
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = false;
+    EXPECT_TRUE(object->get_plan(plan, &params) == LORAWAN_STATUS_SERVICE_UNKNOWN);
+
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::bool_table[1] = false;
+
+    LoRaPHY_stub::uint8_value = 1;
+    LoRaPHY_stub::uint16_value = 0xABCD;
+    EXPECT_TRUE(object->get_plan(plan, &params) == LORAWAN_STATUS_OK);
+
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::bool_table[1] = true;
+    LoRaPHY_stub::bool_table[2] = false;
+    loramac_channel_t ch;
+    plan.channels = &ch;
+    EXPECT_TRUE(object->get_plan(plan, &params) == LORAWAN_STATUS_OK);
+}
+
+TEST_F(Test_LoRaMacChannelPlan, remove_plan)
+{
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = false;
+    EXPECT_TRUE(object->remove_plan() == LORAWAN_STATUS_SERVICE_UNKNOWN);
+
+    LoRaPHY_stub::uint8_value = 4;
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::bool_table[1] = true; //first continue
+    LoRaPHY_stub::bool_table[2] = false;
+    LoRaPHY_stub::bool_table[3] = false;//second continue
+    LoRaPHY_stub::bool_table[4] = false;
+    LoRaPHY_stub::bool_table[5] = true;
+    LoRaPHY_stub::bool_table[6] = false;//false for remove_single_channel(i)
+
+    EXPECT_TRUE(object->remove_plan() == LORAWAN_STATUS_SERVICE_UNKNOWN);
+
+    LoRaPHY_stub::uint8_value = 3;
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::bool_table[1] = false;
+    LoRaPHY_stub::bool_table[2] = true;
+    LoRaPHY_stub::bool_table[3] = true;
+    LoRaPHY_stub::bool_table[4] = true;
+    LoRaPHY_stub::bool_table[5] = true;
+    LoRaPHY_stub::bool_table[7] = true;
+    LoRaPHY_stub::bool_table[8] = true;
+    LoRaPHY_stub::bool_table[9] = true;
+    LoRaPHY_stub::bool_table[10] = true;
+
+    EXPECT_TRUE(object->remove_plan() == LORAWAN_STATUS_OK);
+
+}
+
+TEST_F(Test_LoRaMacChannelPlan, remove_single_channel)
+{
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = false;
+    EXPECT_TRUE(object->remove_single_channel(4) == LORAWAN_STATUS_SERVICE_UNKNOWN);
+
+    LoRaPHY_stub::uint8_value = 2;
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+
+    EXPECT_TRUE(object->remove_single_channel(4) == LORAWAN_STATUS_PARAMETER_INVALID);
+
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::bool_table[1] = false;
+    EXPECT_TRUE(object->remove_single_channel(1) == LORAWAN_STATUS_PARAMETER_INVALID);
+
+    LoRaPHY_stub::bool_counter = 0;
+    LoRaPHY_stub::bool_table[0] = true;
+    LoRaPHY_stub::bool_table[1] = true;
+    EXPECT_TRUE(object->remove_single_channel(1) == LORAWAN_STATUS_OK);
+}
+