Browse Source

implement unit tests for the functions agePermission() and checkIfInteger()

remotes/origin/beta
fdai7207 2 years ago
parent
commit
328eee9f85
  1. 3
      build-project.sh
  2. 9
      src/main.c
  3. 42
      src/mainMenu.c
  4. 13
      src/mainMenu.h
  5. 2
      tests/test_StringManipulation.c
  6. 143
      tests/test_mainMenu.c

3
build-project.sh

@ -1,5 +1,6 @@
clear
ceedling test:all
cd src/
gcc main.c -o main
gcc main.c mainMenu.c -o main
./main
rm main

9
src/main.c

@ -1,7 +1,6 @@
#include <stdio.h>
int main()
{
return 0;
}
int main() {
return 0;
}

42
src/mainMenu.c

@ -0,0 +1,42 @@
#include"mainMenu.h"
bool agePermission(int age){
if(age >= 18)
{
return true;
}
else
{
return false;
}
}
bool checkIfInteger(char* input){
char *end_pointer;
strtol(input, &end_pointer, 10);
if (end_pointer == input || *end_pointer != '\0')
{
return false;
}
else
{
return true;
}
}

13
src/mainMenu.h

@ -0,0 +1,13 @@
#ifndef MAINMENU_H_
#define MAINMENU_H_
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<string.h>
bool agePermission(int age);
bool checkIfInteger(char* userInput);
#endif

2
tests/test_StringManipulation.c

@ -75,7 +75,7 @@ void test_generateCheckString()
for(int i=0;i<20;++i){
random_numbers_strings[i] = strcat(random_numbers_strings[i],"=");
result_3[i] = strcat(random_numbers_strings[i],strings_3[i]);
printf("%s\n",result_3[i]);
//printf("%s\n",result_3[i]);
}
for(int i=0;i<20;++i){
TEST_ASSERT_EQUAL_STRING(result_3[i],generateCheckString(random_numbers[i],strings_3[i]));

143
tests/test_mainMenu.c

@ -0,0 +1,143 @@
#ifdef TEST
#include "unity.h"
#include "mainMenu.h"
void setUp(void)
{
}
void tearDown(void)
{
}
void test_agePermissionValidAge(void)
{
//Test case : 0
//Arrange
int validAge[83];
bool validAgeResult[83];
int j=0;
for(int i =18;i<101;i++){
validAge[j]= i;
j++;
}
//Act
for(int i=0;i<83;i++){
validAgeResult[i] = agePermission(validAge[i]);
}
//Assert
for(int i=0;i<83;i++){
TEST_ASSERT_TRUE(validAgeResult[i]);
}
}
void test_agePermissionInvalidAge(void)
{
//Test case : 1
//Arrange
int invalidAge[117];
bool invalidAgeResult[117];
int j=0;
for(int i =-100;i<18;i++){
invalidAge[j]= i;
j++;
}
//Act
for(int i=0;i<117;i++){
invalidAgeResult[i] = agePermission(invalidAge[i]);
}
//Assert
for(int i=0;i<117;i++){
TEST_ASSERT_FALSE(invalidAgeResult[i]);
}
}
void test_IsInteger(void)
{
//Arrange
char* inputIsInteger[] = {"-10000000","-2000000","-354698","-66667","-7878","-987","-64","-5","0","1","2","10","201","333","4321","56974","698751","7878989","88954621" };
bool inputIsIntegerResult[19];
//Act
for(int i=0;i<19;i++)
{
inputIsIntegerResult[i] = checkIfInteger(inputIsInteger[i]);
}
//Assert
for(int i=0;i<19;i++)
{
TEST_ASSERT_TRUE(inputIsIntegerResult[i]);
}
}
void test_IsNotInteger(void)
{
//Arrange
char* inputIsNotInteger[] = {"0.15","3.141592653589793238","5.3254f","-6.264","-7878.3261","foo","Bar","FIZZ","buzZ","joHN","jAnE","foo-bar","3,15","2k13",""," ","-","+","/*-+.,/=" };
bool inputIsNotIntegerResult[19];
//Act
for(int i=0;i<19;i++)
{
inputIsNotIntegerResult[i] = checkIfInteger(inputIsNotInteger[i]);
}
//Assert
for(int i=0;i<19;i++)
{
TEST_ASSERT_FALSE(inputIsNotIntegerResult[i]);
}
}
#endif // TEST
Loading…
Cancel
Save