Browse Source
Merge branch 'development' into 'feature/customer-creation'
Merge branch 'development' into 'feature/customer-creation'
# Conflicts: # build-project.sh # project.yml # src/main.cremotes/origin/feature/customer-creation
fdai7057
2 years ago
6 changed files with 406 additions and 0 deletions
-
2.gitignore
-
154src/mainMenu.c
-
18src/mainMenu.h
-
6team.md
-
0test/support/.gitkeep
-
226test/test_mainMenu.c
@ -0,0 +1,2 @@ |
|||||
|
.DS_Store |
||||
|
.swp |
@ -0,0 +1,154 @@ |
|||||
|
#include"mainMenu.h" |
||||
|
|
||||
|
|
||||
|
bool agePermission(int age) |
||||
|
{ |
||||
|
|
||||
|
return age >= 18; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
bool checkIfInteger(char* userInput) |
||||
|
{ |
||||
|
|
||||
|
char *endPointer; |
||||
|
|
||||
|
/*the endPointer points to the first non-integer character signaled to stop conversion*/ |
||||
|
|
||||
|
strtol(userInput, &endPointer, 10); |
||||
|
|
||||
|
return !(endPointer == userInput || *endPointer != '\0'); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
bool chooseOption(int choiceInput) |
||||
|
{ |
||||
|
|
||||
|
if(choiceInput<1 || choiceInput>4) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
else |
||||
|
{ |
||||
|
|
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void ageInput() |
||||
|
{ |
||||
|
|
||||
|
char* userInput = malloc(20*sizeof(char*)); |
||||
|
char* userInputPointer; |
||||
|
|
||||
|
long age; |
||||
|
|
||||
|
printf("\nPlease specify your age : "); |
||||
|
scanf("%s",userInput); |
||||
|
|
||||
|
|
||||
|
while (true) |
||||
|
{ |
||||
|
age = strtol(userInput,&userInputPointer,10); |
||||
|
|
||||
|
if((checkIfInteger(userInput))&& (agePermission(age))) |
||||
|
{ |
||||
|
|
||||
|
printf("Access granted!\n\n\n\n"); |
||||
|
|
||||
|
showMenu(); |
||||
|
|
||||
|
menuInput(); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
else if((checkIfInteger(userInput)) && !(agePermission(age))) |
||||
|
{ |
||||
|
|
||||
|
printf("You should be at least 18 years old to create a bank account!\n"); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
else |
||||
|
{ |
||||
|
printf("input invalid! try again!\n"); |
||||
|
|
||||
|
scanf("%s",userInput); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void menuInput() |
||||
|
{ |
||||
|
|
||||
|
char choiceInput[20]; |
||||
|
|
||||
|
char* choiceInputPointer; |
||||
|
|
||||
|
int selection; |
||||
|
|
||||
|
scanf("%s",choiceInput); |
||||
|
|
||||
|
while(true) |
||||
|
{ |
||||
|
selection = strtol(choiceInput,&choiceInputPointer,10); |
||||
|
|
||||
|
if(chooseOption(selection) == true && checkIfInteger(choiceInput) == true) |
||||
|
{ |
||||
|
switch(selection) |
||||
|
{ |
||||
|
|
||||
|
case 1 : printf("\nLoginAsCostumer() function will be implemented here soon\n\n"); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 2 : printf("\ncreateCostumerAccount() function will be implemented here soon\n\n"); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 3 : printf("\nLoginAsEmployee() function will be implemented here soon\n\n"); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 4 : printf("\e[1;1H\e[2J"); |
||||
|
|
||||
|
printf("\nsee you next time !\n\n"); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
} |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
else |
||||
|
{ |
||||
|
printf("Input invalid! try again!\n"); |
||||
|
|
||||
|
scanf("%s",choiceInput); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void showMenu() |
||||
|
{ |
||||
|
|
||||
|
printf("\t\t\t\t\t\t\t Welcome to Bank Manager!"); |
||||
|
printf("\n\n\n\n\t\t\t\t\t\tPlease select one of the following functions!"); |
||||
|
printf("\n\n\n\n\t\t\t\t\t\t ->Login as an existing costumer."); |
||||
|
printf("\n\n\t\t\t\t\t\t ->Register as a new costumer."); |
||||
|
printf("\n\n\t\t\t\t\t\t ->Login as an Employee."); |
||||
|
printf("\n\n\t\t\t\t\t\t\t\t ->Exit.\n"); |
||||
|
printf("\n\n\n\n\n Selection :\n"); |
||||
|
|
||||
|
} |
||||
|
|
@ -0,0 +1,18 @@ |
|||||
|
#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); |
||||
|
bool chooseOption(int choiceInput); |
||||
|
|
||||
|
void ageInput(); |
||||
|
void menuInput(); |
||||
|
void showMenu(); |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,6 @@ |
|||||
|
- Can Hacioglu, fdlt3817 |
||||
|
- Atharva Kishor Naik, fdai7514 |
||||
|
- Julius Philipp Engel, fdai7057 |
||||
|
- Shivam Chaudhary, fdlt3781 |
||||
|
- Mohamed Yahya Dahi, fdai6618 |
||||
|
- Haytham Daoula, fdai7207 |
@ -0,0 +1,226 @@ |
|||||
|
#ifdef TEST |
||||
|
|
||||
|
#include "unity.h" |
||||
|
|
||||
|
#include "mainMenu.h" |
||||
|
|
||||
|
void setUp(void) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void tearDown(void) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void test_agePermissionValidAge(void) |
||||
|
{ |
||||
|
//Test case : 0 |
||||
|
|
||||
|
/*Arrange*/ |
||||
|
|
||||
|
int Age = 18; |
||||
|
|
||||
|
bool validAgeResult[83]; |
||||
|
|
||||
|
/*Act*/ |
||||
|
|
||||
|
for(int i =0; i < 83; i++){ |
||||
|
|
||||
|
validAgeResult[i]= Age + 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]; |
||||
|
|
||||
|
|
||||
|
for(int i =-100; i < 18; i++) |
||||
|
{ |
||||
|
|
||||
|
invalidAge[i+100]= i; |
||||
|
} |
||||
|
|
||||
|
/*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) |
||||
|
{ |
||||
|
|
||||
|
//test case 0 |
||||
|
|
||||
|
/*Arrange*/ |
||||
|
|
||||
|
char* inputIsInteger[] = {"-10000000","-2000000","-354698","-66667","-7878","-987","-64","-5","0","1","2","10","201","333","4321","56974","698751","7878989","88954621" }; |
||||
|
|
||||
|
bool inputIsIntegerExpected = true; |
||||
|
|
||||
|
/*Act and Assert*/ |
||||
|
|
||||
|
for(int i=0; i < 19; i++) |
||||
|
{ |
||||
|
bool inputIsIntegerResult = checkIfInteger(inputIsInteger[i]); |
||||
|
|
||||
|
TEST_ASSERT_EQUAL(inputIsIntegerExpected,inputIsIntegerResult); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void test_IsNotInteger(void) |
||||
|
{ |
||||
|
//test case 1 |
||||
|
|
||||
|
/*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 inputIsNotIntegerExpected = false; |
||||
|
|
||||
|
/*Act and Assert*/ |
||||
|
|
||||
|
|
||||
|
for(int i=0; i<19; i++) |
||||
|
{ |
||||
|
bool inputIsNotIntegerResult = checkIfInteger(inputIsNotInteger[i]); |
||||
|
|
||||
|
TEST_ASSERT_EQUAL(inputIsNotIntegerExpected,inputIsNotIntegerResult); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
void test_validChoiceInput(void) |
||||
|
{ |
||||
|
//test case 0 |
||||
|
|
||||
|
/*Arrange*/ |
||||
|
|
||||
|
int validInput[4]; |
||||
|
|
||||
|
bool validInputResult[4]; |
||||
|
|
||||
|
/*Act*/ |
||||
|
|
||||
|
for(int i = 0; i < 4; i++) |
||||
|
{ |
||||
|
validInput[i] = i + 1; |
||||
|
} |
||||
|
|
||||
|
for(int i = 0; i < 4; i++) |
||||
|
{ |
||||
|
validInputResult[i] = chooseOption(validInput[i]); |
||||
|
} |
||||
|
|
||||
|
/*Assert*/ |
||||
|
|
||||
|
for(int i = 0; i < 4; i++) |
||||
|
{ |
||||
|
TEST_ASSERT_TRUE(validInputResult[i]); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void test_invalidChoiceInput_firstCase(void) |
||||
|
{ |
||||
|
// test case 1 |
||||
|
|
||||
|
/*Arrange*/ |
||||
|
|
||||
|
int invalidInput[100]; |
||||
|
|
||||
|
bool invalidInputResult[100]; |
||||
|
|
||||
|
/*Act*/ |
||||
|
|
||||
|
for(int i = -100; i < 0; i++) |
||||
|
{ |
||||
|
invalidInput[i+100] = i; |
||||
|
} |
||||
|
|
||||
|
for(int i = 0; i < 100; i++) |
||||
|
{ |
||||
|
invalidInputResult[i] = chooseOption(invalidInput[i]); |
||||
|
} |
||||
|
|
||||
|
/*Assert*/ |
||||
|
|
||||
|
for(int i = 0; i < 100; i++) |
||||
|
{ |
||||
|
TEST_ASSERT_FALSE(invalidInputResult[i]); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
void test_invalidChoiceInput_secondCase(void) |
||||
|
{ |
||||
|
// test case 2 |
||||
|
|
||||
|
/*Arrange*/ |
||||
|
|
||||
|
int invalidInput[100]; |
||||
|
|
||||
|
bool invalidInputResult[100]; |
||||
|
|
||||
|
/*Act*/ |
||||
|
|
||||
|
for(int i = 0; i < 100; i++) |
||||
|
{ |
||||
|
invalidInput[i] = i + 5; |
||||
|
} |
||||
|
|
||||
|
for(int i = 0; i < 100; i++) |
||||
|
{ |
||||
|
invalidInputResult[i] = chooseOption(invalidInput[i]); |
||||
|
} |
||||
|
|
||||
|
/*Assert*/ |
||||
|
|
||||
|
for(int i = 0; i < 100; i++) |
||||
|
{ |
||||
|
TEST_ASSERT_FALSE(invalidInputResult[i]); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
#endif // TEST |
Write
Preview
Loading…
Cancel
Save
Reference in new issue