86 lines
1.5 KiB
C++
86 lines
1.5 KiB
C++
/*
|
|
* Author: Jake G
|
|
* Date: 2024
|
|
* filename: test_MockADC.c
|
|
* description:
|
|
*/
|
|
|
|
#include "CppUTest/CommandLineTestRunner.h"
|
|
#include "CppUTestExt/MockSupport.h"
|
|
#include <cstdint>
|
|
|
|
extern "C"
|
|
{
|
|
#include "MockADC.h"
|
|
}
|
|
|
|
TEST_GROUP(test_MockADC){
|
|
void setup(){
|
|
|
|
} void teardown(){
|
|
mock().checkExpectations();
|
|
mock().clear();
|
|
}
|
|
}
|
|
;
|
|
|
|
TEST(test_MockADC, ADC_InitExpects)
|
|
{
|
|
mock().expectOneCall("ADC_Init").withUnsignedIntParameter("pin_num", 7);
|
|
|
|
ADC_Init(7);
|
|
}
|
|
|
|
TEST(test_MockADC, ADC_EnableExpects)
|
|
{
|
|
mock().expectOneCall("ADC_Enable");
|
|
|
|
ADC_Enable();
|
|
}
|
|
|
|
TEST(test_MockADC, ADC_DisableExpect)
|
|
{
|
|
mock().expectOneCall("ADC_Disable");
|
|
|
|
ADC_Disable();
|
|
}
|
|
|
|
TEST(test_MockADC, ADC_ReadValue)
|
|
{
|
|
MockADC_ZeroIndex();
|
|
MockADC_PushValue(512);
|
|
|
|
mock().expectOneCall("ADC_ReadValue_Impl").withUnsignedIntParameter("pin_num", 0x2);
|
|
|
|
uint16_t val = ADC_ReadValue(0x2);
|
|
LONGS_EQUAL(512, val);
|
|
}
|
|
|
|
TEST(test_MockADC, ADC_ReadValueReturnsZeroOnEmptyBuffer)
|
|
{
|
|
MockADC_ZeroIndex();
|
|
|
|
mock().expectOneCall("ADC_ReadValue_Impl").withUnsignedIntParameter("pin_num", 0x2).andReturnValue(0x0000);
|
|
|
|
uint16_t val = ADC_ReadValue(0x2);
|
|
LONGS_EQUAL(0, val);
|
|
}
|
|
|
|
TEST(test_MockADC, MockADC_PushValueDoesntOverflowArray)
|
|
{
|
|
MockADC_ZeroIndex();
|
|
for (int i = 0; i < 257; i++)
|
|
{
|
|
MockADC_PushValue(512 + i);
|
|
CHECK_TRUE(MockADC_GetIndex() <= 255);
|
|
}
|
|
}
|
|
|
|
TEST(test_MockADC, MockADC_SetupSetsGlobal)
|
|
{
|
|
CHECK_FALSE(MockADC_IsSetup());
|
|
|
|
ADC_Setup();
|
|
|
|
CHECK_TRUE(MockADC_IsSetup());
|
|
}
|