Browse Source
Merge branch 'feature/customer-login' into 'development'
Merge branch 'feature/customer-login' into 'development'
Merging feature/customer-login into development. See merge request fdai7057/bankmanagement-system!14remotes/origin/development
fdai7057
2 years ago
44 changed files with 1506 additions and 17 deletions
-
7build-project.sh
-
6src/CustomerData.txt
-
14src/CustomerProperties.h
-
97src/LoginCustomer.c
-
10src/LoginCustomer.h
-
68src/StringManipulation.c
-
6src/StringManipulation.h
-
14src/docs.txt
-
4src/main.c
-
6team.md
-
11tests/build/test/cache/defines_dependency.yml
-
242tests/build/test/cache/input.yml
-
87tests/build/test/cache/test_LoginCustomer.c
-
195tests/build/test/cache/test_StringManipulation.c
-
3tests/build/test/dependencies/LoginCustomer.d
-
3tests/build/test/dependencies/StringManipulation.d
-
6tests/build/test/dependencies/cmock.d
-
4tests/build/test/dependencies/test_LoginCustomer.d
-
4tests/build/test/dependencies/test_LoginCustomer_runner.d
-
5tests/build/test/dependencies/test_StringManipulation.d
-
4tests/build/test/dependencies/test_StringManipulation_runner.d
-
4tests/build/test/dependencies/unity.d
-
BINtests/build/test/out/c/LoginCustomer.o
-
BINtests/build/test/out/c/StringManipulation.o
-
BINtests/build/test/out/c/cmock.o
-
BINtests/build/test/out/c/test_LoginCustomer.o
-
BINtests/build/test/out/c/test_LoginCustomer_runner.o
-
BINtests/build/test/out/c/test_StringManipulation.o
-
BINtests/build/test/out/c/test_StringManipulation_runner.o
-
BINtests/build/test/out/c/unity.o
-
BINtests/build/test/out/test_LoginCustomer.out
-
BINtests/build/test/out/test_StringManipulation.out
-
87tests/build/test/preprocess/files/test_LoginCustomer.c
-
195tests/build/test/preprocess/files/test_StringManipulation.c
-
3tests/build/test/preprocess/includes/test_LoginCustomer.c
-
3tests/build/test/preprocess/includes/test_StringManipulation.c
-
18tests/build/test/results/test_LoginCustomer.pass
-
42tests/build/test/results/test_StringManipulation.pass
-
81tests/build/test/runners/test_LoginCustomer_runner.c
-
89tests/build/test/runners/test_StringManipulation_runner.c
-
101tests/project.yml
-
0tests/test/support/.gitkeep
-
21tests/test/test_LoginCustomer.c
-
83tests/test/test_StringManipulation.c
@ -1,7 +0,0 @@ |
|||||
clear |
|
||||
ceedling test:all |
|
||||
cd src/ |
|
||||
gcc main.c createCustomer.c -o prog |
|
||||
./prog |
|
||||
rm prog |
|
||||
cd .. |
|
@ -0,0 +1,6 @@ |
|||||
|
1234=example |
||||
|
ID=1234 |
||||
|
forename=Max |
||||
|
Surname=Mustermann |
||||
|
password=example |
||||
|
balance=0 |
@ -0,0 +1,14 @@ |
|||||
|
typedef struct Customer{ |
||||
|
<<<<<<< HEAD |
||||
|
<<<<<<< HEAD |
||||
|
int ID; |
||||
|
char *forename,*surname,*password; |
||||
|
======= |
||||
|
char *ID, *forename, *surname, *password; |
||||
|
>>>>>>> 3e7a7d3 (Implementation of functions LoginAsCustomer() and Login()) |
||||
|
======= |
||||
|
int ID; |
||||
|
char *forename,*surname,*password; |
||||
|
>>>>>>> 4d810f5640d89a86c1f2feef3ab19118518ad49f |
||||
|
float balance; |
||||
|
}customer_t; |
@ -0,0 +1,97 @@ |
|||||
|
#include "LoginCustomer.h" |
||||
|
|
||||
|
bool checkLogin(bool loginSuccessful) |
||||
|
{ |
||||
|
return (loginSuccessful) ? true : false; |
||||
|
} |
||||
|
|
||||
|
void collectCustomerDataForLogin(int attempts) |
||||
|
{ |
||||
|
customer_t c; |
||||
|
c.ID = calloc(15+1,sizeof(char)); |
||||
|
c.password = calloc(15+1, sizeof(char)); |
||||
|
char digitCharacterFromUser, passwordCharacterFromUser; |
||||
|
int IDLengthCounter = 0, passwordLengthCounter = 0; |
||||
|
const int IDMaxLength = 16, passwordMaxLength = 16; |
||||
|
|
||||
|
printf("Enter ID:\n"); |
||||
|
while(((digitCharacterFromUser=getchar()) != '\n')&&IDLengthCounter<IDMaxLength){ |
||||
|
if(digitCharacterFromUser>='0'&&digitCharacterFromUser<='9'){ |
||||
|
*(c.ID+IDLengthCounter) = digitCharacterFromUser; |
||||
|
} |
||||
|
else{ |
||||
|
printf("Character entered is not a digit. Aborting.\n"); |
||||
|
exit(-1); |
||||
|
} |
||||
|
++IDLengthCounter; |
||||
|
} |
||||
|
*(c.ID+IDLengthCounter) = '\0'; |
||||
|
|
||||
|
if(IDLengthCounter>=IDMaxLength){ |
||||
|
printf("ID entered is too long. Aborting.\n"); |
||||
|
exit(-1); |
||||
|
} |
||||
|
|
||||
|
printf("Enter password:\n"); |
||||
|
while((passwordCharacterFromUser=getchar())!='\n'&&passwordLengthCounter<passwordMaxLength){ |
||||
|
*(c.password+passwordLengthCounter) = passwordCharacterFromUser; |
||||
|
++passwordLengthCounter; |
||||
|
} |
||||
|
*(c.password+passwordLengthCounter) = '\0'; |
||||
|
|
||||
|
if(passwordLengthCounter>=passwordMaxLength){ |
||||
|
printf("Password entered is too long. Aborting.\n"); |
||||
|
exit(-1); |
||||
|
} |
||||
|
customer_t *ptr = &c; |
||||
|
bool loginSuccessful = loginCustomer(ptr); |
||||
|
if(loginSuccessful ) { |
||||
|
printf("Welcome to the menu!\n"); |
||||
|
//call menu() |
||||
|
}else if(!loginSuccessful && attempts < MAX_LOGIN_ATTEMPTS){ |
||||
|
printf("You have %d attempts left.\n", MAX_LOGIN_ATTEMPTS - attempts); |
||||
|
collectCustomerDataForLogin(++attempts); |
||||
|
}else{ |
||||
|
printf("Maximum number of attempts reached. Program terminates.\n"); |
||||
|
exit(-1); |
||||
|
//call error() |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
bool loginCustomer(customer_t *c) |
||||
|
{ |
||||
|
bool foundCustomerEntryInFile = false; |
||||
|
char *searchForThisString = generateCheckString(c->ID,c->password); |
||||
|
char *lineFromCustomerFile = calloc(40,sizeof(char)); |
||||
|
FILE *readCustomerFile = fopen("CustomerData.txt", "r"); |
||||
|
if(readCustomerFile==NULL){ |
||||
|
printf("Could not find file. Aborting.\n"); |
||||
|
exit(-1); |
||||
|
//call error() |
||||
|
} |
||||
|
while((fscanf(readCustomerFile,"%s",lineFromCustomerFile)!=EOF)){ |
||||
|
if(strcmp(searchForThisString,lineFromCustomerFile)==0){ |
||||
|
foundCustomerEntryInFile = true; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if(checkLogin(foundCustomerEntryInFile)){ |
||||
|
printf("Login successful.\n"); |
||||
|
return foundCustomerEntryInFile; |
||||
|
}else{ |
||||
|
printf("Login not successful.\n"); |
||||
|
} |
||||
|
fclose(readCustomerFile); |
||||
|
return foundCustomerEntryInFile; |
||||
|
} |
||||
|
|
||||
|
char *generateCheckString(char *ID, char *password){ |
||||
|
int checkStringLength = strlen(ID) + 1 + strlen(password) + 1; |
||||
|
char *checkString = calloc(checkStringLength, sizeof(char)); |
||||
|
checkString = strcat(ID,"="); |
||||
|
checkString = strcat(checkString,password); |
||||
|
*(checkString+checkStringLength) = '\0'; |
||||
|
return checkString; |
||||
|
} |
@ -0,0 +1,10 @@ |
|||||
|
#include <stdio.h> |
||||
|
#include <stdlib.h> |
||||
|
#include <stdbool.h> |
||||
|
#include <string.h> |
||||
|
#include "CustomerProperties.h" |
||||
|
#define MAX_LOGIN_ATTEMPTS 3 |
||||
|
char *generateCheckString(char *, char*); |
||||
|
bool checkLogin(bool); |
||||
|
void collectCustomerDataForLogin(int); |
||||
|
bool loginCustomer(customer_t *); |
@ -0,0 +1,68 @@ |
|||||
|
#include "StringManipulation.h" |
||||
|
/*Code written by Julius Philipp Engel, fdai7057*/ |
||||
|
|
||||
|
char *stringConcatenation(char *string_1, char *string_2) |
||||
|
{ |
||||
|
int lengthStringOne = strlen(string_1); |
||||
|
int lengthStringTwo = strlen(string_2); |
||||
|
|
||||
|
if(lengthStringOne==0||lengthStringTwo==0){ |
||||
|
printf("Empty strings are not allowed. Aborting.\n"); |
||||
|
exit(-1); |
||||
|
//call error(); |
||||
|
} |
||||
|
|
||||
|
const int totalLength = lengthStringOne + lengthStringTwo + 1; |
||||
|
char *result = calloc(totalLength, sizeof(char)); |
||||
|
int i,j; |
||||
|
for(i=0,j=0;i<totalLength;++i){ |
||||
|
if(i<lengthStringOne){ |
||||
|
*(result+i) = *(string_1+i); |
||||
|
}else{ |
||||
|
*(result+i) = *(string_2+j); |
||||
|
++j; |
||||
|
} |
||||
|
} |
||||
|
*(result+i) = '\0'; |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
char *to_string(int number) |
||||
|
{ |
||||
|
if(number==0) |
||||
|
{ |
||||
|
char *str = calloc(2,sizeof(char)); |
||||
|
*(str) = '0'; |
||||
|
*(str+1) = '\0'; |
||||
|
return str; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
int cpy = number, len = 0; |
||||
|
while(number>0){ |
||||
|
++len; |
||||
|
number /= 10; |
||||
|
} |
||||
|
char *str = calloc(len+1, sizeof(char)); |
||||
|
for(int i=0,j=len-1;i<len;++i,--j){ |
||||
|
*(str+j) = '0' + (cpy % 10); |
||||
|
cpy /= 10; |
||||
|
} |
||||
|
*(str+len) = '\0'; |
||||
|
return str; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
char *generateCheckString(int customerID, char *customerPassword) |
||||
|
{ |
||||
|
char *IDString = to_string(customerID); |
||||
|
int IDLength = strlen(IDString); |
||||
|
int passwordLength = strlen(customerPassword); |
||||
|
int checkStringLength = IDLength + 1 + passwordLength + 1; |
||||
|
char *checkString = calloc(checkStringLength, sizeof(char)); |
||||
|
checkString = strcat(IDString, "="); |
||||
|
checkString = strcat(checkString, customerPassword); |
||||
|
*(checkString+checkStringLength) = '\0'; |
||||
|
return checkString; |
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
#include <stdlib.h> |
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
char *stringConcatenation(char *, char *); |
||||
|
char *to_string(int); |
||||
|
char *generateCheckString(int, char *); |
@ -0,0 +1,14 @@ |
|||||
|
char *stringConcatenation(char string_1*, char string_2*): |
||||
|
|
||||
|
This function takes two char pointers. In this function a new string is created. This new string is the concatenation of string_1 and string_2. The size of the new string is the length of string_1 plus the length of string_2 plus one for '\0'. This function is needed when creating an unique check string for a customer. |
||||
|
|
||||
|
char *to_string(int number): |
||||
|
|
||||
|
This function takes an integer variable as its argument. It returns an string that contains the digits of number. For example to_string(176) would return "176\0". This function is needed to write data in form of characters into the customer file. |
||||
|
|
||||
|
|
||||
|
char *generateCheckString(int customerID, char *password): |
||||
|
|
||||
|
The purpose of this function is to generate a string that is needed when a user wants to login. This string is searched for in the customer-data file and if it is found, the login is successful. This function is needed when a new user is created because then it is written in the file for the first time. |
||||
|
The format of the returned string is [ID]=[PASSWORD]. |
||||
|
For example generateCheckString(177,"tree") would return "177=tree\0". |
@ -1,4 +0,0 @@ |
|||||
#include "createCustomer.h" |
|
||||
int main(){ |
|
||||
collectCustomerProperties(); |
|
||||
} |
|
@ -1,6 +0,0 @@ |
|||||
- Can Hacioglu, fdlt3817 |
|
||||
- Atharva Kishor Naik, fdai7514 |
|
||||
- Julius Philipp Engel, fdai7057 |
|
||||
- Shivam Chaudhary, fdlt3781 |
|
||||
- Mohamed Yahya Dahi, fdai6618 |
|
||||
- Haytham Daoula, fdai7207 |
|
@ -0,0 +1,11 @@ |
|||||
|
--- |
||||
|
<<<<<<< HEAD |
||||
|
<<<<<<< HEAD |
||||
|
"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.c": |
||||
|
======= |
||||
|
"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c": |
||||
|
>>>>>>> 0155f61 (implementation of unit tests for checkLogin()) |
||||
|
======= |
||||
|
"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c": |
||||
|
>>>>>>> 4d810f5640d89a86c1f2feef3ab19118518ad49f |
||||
|
- TEST |
@ -0,0 +1,242 @@ |
|||||
|
--- |
||||
|
:project: |
||||
|
:use_exceptions: false |
||||
|
:use_mocks: true |
||||
|
:compile_threads: 1 |
||||
|
:test_threads: 1 |
||||
|
:use_test_preprocessor: true |
||||
|
:use_preprocessor_directives: false |
||||
|
:use_deep_dependencies: false |
||||
|
:generate_deep_dependencies: true |
||||
|
:auto_link_deep_dependencies: false |
||||
|
:test_file_prefix: test_ |
||||
|
:options_paths: [] |
||||
|
:release_build: false |
||||
|
:use_auxiliary_dependencies: true |
||||
|
:build_root: build |
||||
|
:which_ceedling: gem |
||||
|
:ceedling_version: 0.31.1 |
||||
|
:default_tasks: |
||||
|
- test:all |
||||
|
:release_build: |
||||
|
:use_assembly: false |
||||
|
:artifacts: [] |
||||
|
:paths: |
||||
|
:test: |
||||
|
- "+:test/**" |
||||
|
- "-:test/support" |
||||
|
:source: |
||||
|
- "/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/**" |
||||
|
:support: |
||||
|
- test/support |
||||
|
:include: [] |
||||
|
:libraries: [] |
||||
|
:test_toolchain_include: [] |
||||
|
:release_toolchain_include: [] |
||||
|
:files: |
||||
|
:test: [] |
||||
|
:source: [] |
||||
|
:assembly: [] |
||||
|
:support: [] |
||||
|
:include: [] |
||||
|
:environment: |
||||
|
- :rake_columns: '120' |
||||
|
:defines: |
||||
|
:test: |
||||
|
- &1 [] |
||||
|
- TEST |
||||
|
:test_preprocess: |
||||
|
- *1 |
||||
|
- TEST |
||||
|
:release: [] |
||||
|
:release_preprocess: [] |
||||
|
:use_test_definition: false |
||||
|
:common: [] |
||||
|
:libraries: |
||||
|
:flag: "-l${1}" |
||||
|
:path_flag: "-L ${1}" |
||||
|
:test: [] |
||||
|
:test_preprocess: [] |
||||
|
:release: [] |
||||
|
:release_preprocess: [] |
||||
|
:placement: :end |
||||
|
:system: [] |
||||
|
:flags: {} |
||||
|
:extension: |
||||
|
:header: ".h" |
||||
|
:source: ".c" |
||||
|
:assembly: ".s" |
||||
|
:object: ".o" |
||||
|
:libraries: |
||||
|
- ".a" |
||||
|
- ".so" |
||||
|
:executable: ".out" |
||||
|
:map: ".map" |
||||
|
:list: ".lst" |
||||
|
:testpass: ".pass" |
||||
|
:testfail: ".fail" |
||||
|
:dependencies: ".d" |
||||
|
:unity: |
||||
|
:vendor_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor" |
||||
|
:defines: [] |
||||
|
:cmock: |
||||
|
:vendor_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor" |
||||
|
:defines: [] |
||||
|
:includes: [] |
||||
|
:mock_prefix: mock_ |
||||
|
:when_no_prototypes: :warn |
||||
|
:enforce_strict_ordering: true |
||||
|
:plugins: |
||||
|
- :ignore |
||||
|
- :callback |
||||
|
:treat_as: |
||||
|
uint8: HEX8 |
||||
|
uint16: HEX16 |
||||
|
uint32: UINT32 |
||||
|
int8: INT8 |
||||
|
bool: UINT8 |
||||
|
:mock_path: build/test/mocks |
||||
|
:verbosity: 3 |
||||
|
:unity_helper: false |
||||
|
:cexception: |
||||
|
:vendor_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor" |
||||
|
:defines: [] |
||||
|
:test_runner: |
||||
|
:includes: [] |
||||
|
:file_suffix: _runner |
||||
|
:tools: |
||||
|
:test_compiler: |
||||
|
:executable: gcc |
||||
|
:name: default_test_compiler |
||||
|
:stderr_redirect: :none |
||||
|
:background_exec: :none |
||||
|
:optional: false |
||||
|
:arguments: |
||||
|
- '' |
||||
|
- '' |
||||
|
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
||||
|
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
||||
|
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
||||
|
- "-DGNU_COMPILER" |
||||
|
- "-g" |
||||
|
- '' |
||||
|
- -c "${1}" |
||||
|
- -o "${2}" |
||||
|
- "-MMD" |
||||
|
- -MF "${4}" |
||||
|
:test_fixture: |
||||
|
:executable: "${1}" |
||||
|
:name: default_test_fixture |
||||
|
:stderr_redirect: :auto |
||||
|
:background_exec: :none |
||||
|
:optional: false |
||||
|
:arguments: [] |
||||
|
:test_linker: |
||||
|
:executable: gcc |
||||
|
:name: default_test_linker |
||||
|
:stderr_redirect: :none |
||||
|
:background_exec: :none |
||||
|
:optional: false |
||||
|
:arguments: |
||||
|
- '' |
||||
|
- '' |
||||
|
- '' |
||||
|
- '"${1}"' |
||||
|
- "${5}" |
||||
|
- -o "${2}" |
||||
|
- '' |
||||
|
- "${4}" |
||||
|
- '' |
||||
|
:test_file_preprocessor: |
||||
|
:executable: gcc |
||||
|
:name: default_test_file_preprocessor |
||||
|
:stderr_redirect: :none |
||||
|
:background_exec: :none |
||||
|
:optional: false |
||||
|
:arguments: |
||||
|
- '' |
||||
|
- '' |
||||
|
- "-E" |
||||
|
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
||||
|
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
||||
|
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
||||
|
- "-D$": DEFINES_TEST_PREPROCESS |
||||
|
- "-DGNU_COMPILER" |
||||
|
- '"${1}"' |
||||
|
- -o "${2}" |
||||
|
:test_file_preprocessor_directives: |
||||
|
:executable: gcc |
||||
|
:name: default_test_file_preprocessor_directives |
||||
|
:stderr_redirect: :none |
||||
|
:background_exec: :none |
||||
|
:optional: false |
||||
|
:arguments: |
||||
|
- "-E" |
||||
|
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
||||
|
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
||||
|
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
||||
|
- "-D$": DEFINES_TEST_PREPROCESS |
||||
|
- "-DGNU_COMPILER" |
||||
|
- "-fdirectives-only" |
||||
|
- '"${1}"' |
||||
|
- -o "${2}" |
||||
|
:test_includes_preprocessor: |
||||
|
:executable: gcc |
||||
|
:name: default_test_includes_preprocessor |
||||
|
:stderr_redirect: :none |
||||
|
:background_exec: :none |
||||
|
:optional: false |
||||
|
:arguments: |
||||
|
- '' |
||||
|
- '' |
||||
|
- "-E" |
||||
|
- "-MM" |
||||
|
- "-MG" |
||||
|
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR |
||||
|
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE |
||||
|
- "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR |
||||
|
- "-D$": DEFINES_TEST_PREPROCESS |
||||
|
- "-DGNU_COMPILER" |
||||
|
- '"${1}"' |
||||
|
:test_compiler: |
||||
|
:arguments: [] |
||||
|
:test_linker: |
||||
|
:arguments: [] |
||||
|
:test_fixture: |
||||
|
:arguments: [] |
||||
|
:link_objects: [] |
||||
|
:test_includes_preprocessor: |
||||
|
:arguments: [] |
||||
|
:test_file_preprocessor: |
||||
|
:arguments: [] |
||||
|
:test_file_preprocessor_directives: |
||||
|
:arguments: [] |
||||
|
:test_dependencies_generator: |
||||
|
:arguments: [] |
||||
|
:release_compiler: |
||||
|
:arguments: [] |
||||
|
:release_linker: |
||||
|
:arguments: [] |
||||
|
:release_assembler: |
||||
|
:arguments: [] |
||||
|
:release_dependencies_generator: |
||||
|
:arguments: [] |
||||
|
:plugins: |
||||
|
:load_paths: |
||||
|
- "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/lib/../plugins" |
||||
|
:enabled: |
||||
|
- stdout_pretty_tests_report |
||||
|
- module_generator |
||||
|
:display_raw_test_results: false |
||||
|
:stdout_pretty_tests_report_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/lib/../plugins/stdout_pretty_tests_report" |
||||
|
:module_generator_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/lib/../plugins/module_generator" |
||||
|
:gcov: |
||||
|
:reports: |
||||
|
- HtmlDetailed |
||||
|
:gcovr: |
||||
|
:html_medium_threshold: 75 |
||||
|
:html_high_threshold: 90 |
||||
|
:module_generator: |
||||
|
:project_root: "./" |
||||
|
:source_root: src/ |
||||
|
:test_root: test/ |
@ -0,0 +1,87 @@ |
|||||
|
#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h" |
||||
|
#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
||||
|
void setUp(){}; |
||||
|
|
||||
|
void tearDown(){}; |
||||
|
|
||||
|
void test_checkLogin() |
||||
|
|
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
expected_test_values_compute_to_true[] = {4==4, |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
, 1==1, |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
, 'z'=='z', '='=='=',0x1A==0x1A}; |
||||
|
|
||||
|
int length_1 = sizeof(expected_test_values_compute_to_true)/sizeof( |
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
expected_test_values_compute_to_false[] = {4!=4, |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
,1==0, |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
,'z'=='x','!'==')',0x1A==0x2B}; |
||||
|
|
||||
|
int length_2 = sizeof(expected_test_values_compute_to_false)/sizeof( |
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0;i<7;++i) { |
||||
|
|
||||
|
do {if ((checkLogin(expected_test_values_compute_to_true[i]))) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(16)));}} while(0); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
for(int i=0;i<7;++i){ |
||||
|
|
||||
|
do {if (!(checkLogin(expected_test_values_compute_to_false[i]))) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(19)));}} while(0); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,195 @@ |
|||||
|
#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h" |
||||
|
#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
void test_to_string() |
||||
|
|
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
char *result_1[] = {"0","1","2","3","4","5","6","7","8","9","10"}; |
||||
|
|
||||
|
char *result_2[] = {"500","502","504","506","508","510","512","514","516","518"}; |
||||
|
|
||||
|
char *result_3[] = {"1000","2000","3000","4000","5000","6000","7000","8000","9000","10000"}; |
||||
|
|
||||
|
char *result_4[] = {"9999","8999","7999","6999","5999","4999","3999","2999","1999","999"}; |
||||
|
|
||||
|
char *result_5[] = {"1000000","2000000","3000000","4000000","5000000","6000000","7000000", |
||||
|
|
||||
|
"8000000","9000000","10000000"}; |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0;i<=10;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_1[i])), (const char*)((to_string(i))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(17)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0, j=500;i<10;++i,j+=2){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_2[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(21)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0, j=1000;i<10;++i,j+=1000){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_3[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(25)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0, j=9999;i<10;++i,j-=1000){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_4[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(29)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
for(int i=0, j=1000000;i<10;++i,j+=1000000){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_5[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(32)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
void test_generateCheckString() |
||||
|
|
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
int numbers_1[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; |
||||
|
|
||||
|
char *strings_1[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; |
||||
|
|
||||
|
char *result_1[] = {"0=a","1=b","2=c","3=d","4=e","5=f","6=g","7=h","8=i","9=j","10=k","11=l","12=m","13=n","14=o","15=p","16=q","17=r", "18=s","19=t","20=u","21=v","22=w","23=x","24=y","25=z"}; |
||||
|
|
||||
|
for(int i=0;i<26;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_1[i])), (const char*)((generateCheckString(numbers_1[i],*(strings_1+i)))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(45)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
int numbers_2[] = {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025}; |
||||
|
|
||||
|
char *strings_2[] = {"z","zy","zyx","zyxw","zyxwv","zyxwvu","zyxwvut","zyxwvuts","zyxwvutsr","zyxwvutsrq","zyxwvutsrqp", |
||||
|
|
||||
|
"zyxwvutsrqpo","zyxwvutsrqpon","zyxwvutsrqponm","zyxwvutsrqponml","zyxwvutsrqponmlk", |
||||
|
|
||||
|
"zyxwvutsrqponmlkj","zyxwvutsrqponmlkji","zyxwvutsrqponmlkjih","zyxwvutsrqponmlkjihg","zyxwvutsrqponmlkjihgf", |
||||
|
|
||||
|
"zyxwvutsrqponmlkjihgfe","zyxwvutsrqponmlkjihgfed","zyxwvutsrqponmlkjihgfedc","zyxwvutsrqponmlkjihgfedcb", |
||||
|
|
||||
|
"zyxwvutsrqponmlkjihgfedcba"}; |
||||
|
|
||||
|
char *result_2[] = {"0=z","1=zy","1=zyx","2=zyxw","3=zyxwv","5=zyxwvu","8=zyxwvut","13=zyxwvuts","21=zyxwvutsr","34=zyxwvutsrq", |
||||
|
|
||||
|
"55=zyxwvutsrqp","89=zyxwvutsrqpo","144=zyxwvutsrqpon","233=zyxwvutsrqponm","377=zyxwvutsrqponml", |
||||
|
|
||||
|
"610=zyxwvutsrqponmlk","987=zyxwvutsrqponmlkj","1597=zyxwvutsrqponmlkji","2584=zyxwvutsrqponmlkjih", |
||||
|
|
||||
|
"4181=zyxwvutsrqponmlkjihg","6765=zyxwvutsrqponmlkjihgf","10946=zyxwvutsrqponmlkjihgfe", |
||||
|
|
||||
|
"17711=zyxwvutsrqponmlkjihgfed","28657=zyxwvutsrqponmlkjihgfedc","46368=zyxwvutsrqponmlkjihgfedcb", |
||||
|
|
||||
|
"75025=zyxwvutsrqponmlkjihgfedcba"}; |
||||
|
|
||||
|
for(int i=0;i<26;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_2[i])), (const char*)((generateCheckString(numbers_2[i],*(strings_2+i)))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(61)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
srand(time(0)); |
||||
|
|
||||
|
int random_number=0; |
||||
|
|
||||
|
char *random_numbers_strings[20]; |
||||
|
|
||||
|
int random_numbers[20]; |
||||
|
|
||||
|
for(int i=0;i<20;++i){ |
||||
|
|
||||
|
random_number = (rand() % 100) + 1; |
||||
|
|
||||
|
random_numbers_strings[i] = to_string(random_number); |
||||
|
|
||||
|
random_numbers[i] = random_number; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
char *strings_3[] = {"tree","plant","tea","programming","assembler","unix","BSD","snow","mountain","table","wood","forest", "calculator","book","light","keyboard","old","paper","pencil","voltage"}; |
||||
|
|
||||
|
char *result_3[20]; |
||||
|
|
||||
|
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]); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
for(int i=0;i<20;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_3[i])), (const char*)((generateCheckString(random_numbers[i],strings_3[i]))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(81)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
build/test/out/c/LoginCustomer.o: \ |
||||
|
/home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c \ |
||||
|
/home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h |
@ -0,0 +1,3 @@ |
|||||
|
build/test/out/c/StringManipulation.o: \ |
||||
|
/home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.c \ |
||||
|
/home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h |
@ -0,0 +1,6 @@ |
|||||
|
build/test/out/c/cmock.o: \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.c \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock_internals.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -0,0 +1,4 @@ |
|||||
|
build/test/out/c/test_LoginCustomer.o: test/test_LoginCustomer.c \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ |
||||
|
/home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h |
@ -0,0 +1,4 @@ |
|||||
|
build/test/out/c/test_LoginCustomer_runner.o: \ |
||||
|
build/test/runners/test_LoginCustomer_runner.c \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -0,0 +1,5 @@ |
|||||
|
build/test/out/c/test_StringManipulation.o: \ |
||||
|
test/test_StringManipulation.c \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ |
||||
|
/home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h |
@ -0,0 +1,4 @@ |
|||||
|
build/test/out/c/test_StringManipulation_runner.o: \ |
||||
|
build/test/runners/test_StringManipulation_runner.c \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -0,0 +1,4 @@ |
|||||
|
build/test/out/c/unity.o: \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.c \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ |
||||
|
/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h |
@ -0,0 +1,87 @@ |
|||||
|
#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h" |
||||
|
#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
||||
|
void setUp(){}; |
||||
|
|
||||
|
void tearDown(){}; |
||||
|
|
||||
|
void test_checkLogin() |
||||
|
|
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
expected_test_values_compute_to_true[] = {4==4, |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
, 1==1, |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
, 'z'=='z', '='=='=',0x1A==0x1A}; |
||||
|
|
||||
|
int length_1 = sizeof(expected_test_values_compute_to_true)/sizeof( |
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
expected_test_values_compute_to_false[] = {4!=4, |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
,1==0, |
||||
|
|
||||
|
0 |
||||
|
|
||||
|
== |
||||
|
|
||||
|
1 |
||||
|
|
||||
|
,'z'=='x','!'==')',0x1A==0x2B}; |
||||
|
|
||||
|
int length_2 = sizeof(expected_test_values_compute_to_false)/sizeof( |
||||
|
|
||||
|
_Bool |
||||
|
|
||||
|
); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0;i<7;++i) { |
||||
|
|
||||
|
do {if ((checkLogin(expected_test_values_compute_to_true[i]))) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(16)));}} while(0); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
for(int i=0;i<7;++i){ |
||||
|
|
||||
|
do {if (!(checkLogin(expected_test_values_compute_to_false[i]))) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(19)));}} while(0); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,195 @@ |
|||||
|
#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h" |
||||
|
#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
void test_to_string() |
||||
|
|
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
char *result_1[] = {"0","1","2","3","4","5","6","7","8","9","10"}; |
||||
|
|
||||
|
char *result_2[] = {"500","502","504","506","508","510","512","514","516","518"}; |
||||
|
|
||||
|
char *result_3[] = {"1000","2000","3000","4000","5000","6000","7000","8000","9000","10000"}; |
||||
|
|
||||
|
char *result_4[] = {"9999","8999","7999","6999","5999","4999","3999","2999","1999","999"}; |
||||
|
|
||||
|
char *result_5[] = {"1000000","2000000","3000000","4000000","5000000","6000000","7000000", |
||||
|
|
||||
|
"8000000","9000000","10000000"}; |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0;i<=10;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_1[i])), (const char*)((to_string(i))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(17)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0, j=500;i<10;++i,j+=2){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_2[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(21)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0, j=1000;i<10;++i,j+=1000){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_3[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(25)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
for(int i=0, j=9999;i<10;++i,j-=1000){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_4[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(29)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
for(int i=0, j=1000000;i<10;++i,j+=1000000){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_5[i])), (const char*)((to_string(j))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(32)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
void test_generateCheckString() |
||||
|
|
||||
|
{ |
||||
|
|
||||
|
|
||||
|
|
||||
|
int numbers_1[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; |
||||
|
|
||||
|
char *strings_1[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; |
||||
|
|
||||
|
char *result_1[] = {"0=a","1=b","2=c","3=d","4=e","5=f","6=g","7=h","8=i","9=j","10=k","11=l","12=m","13=n","14=o","15=p","16=q","17=r", "18=s","19=t","20=u","21=v","22=w","23=x","24=y","25=z"}; |
||||
|
|
||||
|
for(int i=0;i<26;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_1[i])), (const char*)((generateCheckString(numbers_1[i],*(strings_1+i)))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(45)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
int numbers_2[] = {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025}; |
||||
|
|
||||
|
char *strings_2[] = {"z","zy","zyx","zyxw","zyxwv","zyxwvu","zyxwvut","zyxwvuts","zyxwvutsr","zyxwvutsrq","zyxwvutsrqp", |
||||
|
|
||||
|
"zyxwvutsrqpo","zyxwvutsrqpon","zyxwvutsrqponm","zyxwvutsrqponml","zyxwvutsrqponmlk", |
||||
|
|
||||
|
"zyxwvutsrqponmlkj","zyxwvutsrqponmlkji","zyxwvutsrqponmlkjih","zyxwvutsrqponmlkjihg","zyxwvutsrqponmlkjihgf", |
||||
|
|
||||
|
"zyxwvutsrqponmlkjihgfe","zyxwvutsrqponmlkjihgfed","zyxwvutsrqponmlkjihgfedc","zyxwvutsrqponmlkjihgfedcb", |
||||
|
|
||||
|
"zyxwvutsrqponmlkjihgfedcba"}; |
||||
|
|
||||
|
char *result_2[] = {"0=z","1=zy","1=zyx","2=zyxw","3=zyxwv","5=zyxwvu","8=zyxwvut","13=zyxwvuts","21=zyxwvutsr","34=zyxwvutsrq", |
||||
|
|
||||
|
"55=zyxwvutsrqp","89=zyxwvutsrqpo","144=zyxwvutsrqpon","233=zyxwvutsrqponm","377=zyxwvutsrqponml", |
||||
|
|
||||
|
"610=zyxwvutsrqponmlk","987=zyxwvutsrqponmlkj","1597=zyxwvutsrqponmlkji","2584=zyxwvutsrqponmlkjih", |
||||
|
|
||||
|
"4181=zyxwvutsrqponmlkjihg","6765=zyxwvutsrqponmlkjihgf","10946=zyxwvutsrqponmlkjihgfe", |
||||
|
|
||||
|
"17711=zyxwvutsrqponmlkjihgfed","28657=zyxwvutsrqponmlkjihgfedc","46368=zyxwvutsrqponmlkjihgfedcb", |
||||
|
|
||||
|
"75025=zyxwvutsrqponmlkjihgfedcba"}; |
||||
|
|
||||
|
for(int i=0;i<26;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_2[i])), (const char*)((generateCheckString(numbers_2[i],*(strings_2+i)))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(61)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
srand(time(0)); |
||||
|
|
||||
|
int random_number=0; |
||||
|
|
||||
|
char *random_numbers_strings[20]; |
||||
|
|
||||
|
int random_numbers[20]; |
||||
|
|
||||
|
for(int i=0;i<20;++i){ |
||||
|
|
||||
|
random_number = (rand() % 100) + 1; |
||||
|
|
||||
|
random_numbers_strings[i] = to_string(random_number); |
||||
|
|
||||
|
random_numbers[i] = random_number; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
char *strings_3[] = {"tree","plant","tea","programming","assembler","unix","BSD","snow","mountain","table","wood","forest", "calculator","book","light","keyboard","old","paper","pencil","voltage"}; |
||||
|
|
||||
|
char *result_3[20]; |
||||
|
|
||||
|
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]); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
for(int i=0;i<20;++i){ |
||||
|
|
||||
|
UnityAssertEqualString((const char*)((result_3[i])), (const char*)((generateCheckString(random_numbers[i],strings_3[i]))), ( |
||||
|
|
||||
|
((void *)0) |
||||
|
|
||||
|
), (UNITY_UINT)(81)); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
--- |
||||
|
- "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
||||
|
- Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h |
@ -0,0 +1,3 @@ |
|||||
|
--- |
||||
|
- "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
||||
|
- Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h |
@ -0,0 +1,18 @@ |
|||||
|
--- |
||||
|
:source: |
||||
|
:path: test |
||||
|
:file: test_LoginCustomer.c |
||||
|
:successes: |
||||
|
- :test: test_checkLogin |
||||
|
:line: 5 |
||||
|
:message: '' |
||||
|
:unity_test_time: 0 |
||||
|
:failures: [] |
||||
|
:ignores: [] |
||||
|
:counts: |
||||
|
:total: 1 |
||||
|
:passed: 1 |
||||
|
:failed: 0 |
||||
|
:ignored: 0 |
||||
|
:stdout: [] |
||||
|
:time: 0.001912861000164412 |
@ -0,0 +1,42 @@ |
|||||
|
--- |
||||
|
:source: |
||||
|
:path: test |
||||
|
:file: test_StringManipulation.c |
||||
|
:successes: |
||||
|
- :test: test_to_string |
||||
|
:line: 6 |
||||
|
:message: '' |
||||
|
:unity_test_time: 0 |
||||
|
- :test: test_generateCheckString |
||||
|
:line: 38 |
||||
|
:message: '' |
||||
|
:unity_test_time: 0 |
||||
|
:failures: [] |
||||
|
:ignores: [] |
||||
|
:counts: |
||||
|
:total: 2 |
||||
|
:passed: 2 |
||||
|
:failed: 0 |
||||
|
:ignored: 0 |
||||
|
:stdout: |
||||
|
- 9=tree |
||||
|
- 26=plant |
||||
|
- 92=tea |
||||
|
- 31=programming |
||||
|
- 75=assembler |
||||
|
- 28=unix |
||||
|
- 92=BSD |
||||
|
- 99=snow |
||||
|
- 10=mountain |
||||
|
- 43=table |
||||
|
- 92=wood |
||||
|
- 98=forest |
||||
|
- 3=calculator |
||||
|
- 32=book |
||||
|
- 29=light |
||||
|
- 92=keyboard |
||||
|
- 35=old |
||||
|
- 27=paper |
||||
|
- 85=pencil |
||||
|
- 91=voltage |
||||
|
:time: 0.0019293400000606198 |
@ -0,0 +1,81 @@ |
|||||
|
/* AUTOGENERATED FILE. DO NOT EDIT. */ |
||||
|
|
||||
|
/*=======Automagically Detected Files To Include=====*/ |
||||
|
#include "unity.h" |
||||
|
|
||||
|
int GlobalExpectCount; |
||||
|
int GlobalVerifyOrder; |
||||
|
char* GlobalOrderError; |
||||
|
|
||||
|
/*=======External Functions This Runner Calls=====*/ |
||||
|
extern void setUp(void); |
||||
|
extern void tearDown(void); |
||||
|
extern void test_checkLogin(); |
||||
|
|
||||
|
|
||||
|
/*=======Mock Management=====*/ |
||||
|
static void CMock_Init(void) |
||||
|
{ |
||||
|
GlobalExpectCount = 0; |
||||
|
GlobalVerifyOrder = 0; |
||||
|
GlobalOrderError = NULL; |
||||
|
} |
||||
|
static void CMock_Verify(void) |
||||
|
{ |
||||
|
} |
||||
|
static void CMock_Destroy(void) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*=======Test Reset Options=====*/ |
||||
|
void resetTest(void); |
||||
|
void resetTest(void) |
||||
|
{ |
||||
|
tearDown(); |
||||
|
CMock_Verify(); |
||||
|
CMock_Destroy(); |
||||
|
CMock_Init(); |
||||
|
setUp(); |
||||
|
} |
||||
|
void verifyTest(void); |
||||
|
void verifyTest(void) |
||||
|
{ |
||||
|
CMock_Verify(); |
||||
|
} |
||||
|
|
||||
|
/*=======Test Runner Used To Run Each Test=====*/ |
||||
|
static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) |
||||
|
{ |
||||
|
Unity.CurrentTestName = name; |
||||
|
Unity.CurrentTestLineNumber = line_num; |
||||
|
#ifdef UNITY_USE_COMMAND_LINE_ARGS |
||||
|
if (!UnityTestMatches()) |
||||
|
return; |
||||
|
#endif |
||||
|
Unity.NumberOfTests++; |
||||
|
UNITY_CLR_DETAILS(); |
||||
|
UNITY_EXEC_TIME_START(); |
||||
|
CMock_Init(); |
||||
|
if (TEST_PROTECT()) |
||||
|
{ |
||||
|
setUp(); |
||||
|
func(); |
||||
|
} |
||||
|
if (TEST_PROTECT()) |
||||
|
{ |
||||
|
tearDown(); |
||||
|
CMock_Verify(); |
||||
|
} |
||||
|
CMock_Destroy(); |
||||
|
UNITY_EXEC_TIME_STOP(); |
||||
|
UnityConcludeTest(); |
||||
|
} |
||||
|
|
||||
|
/*=======MAIN=====*/ |
||||
|
int main(void) |
||||
|
{ |
||||
|
UnityBegin("test_LoginCustomer.c"); |
||||
|
run_test(test_checkLogin, "test_checkLogin", 5); |
||||
|
|
||||
|
return UnityEnd(); |
||||
|
} |
@ -0,0 +1,89 @@ |
|||||
|
/* AUTOGENERATED FILE. DO NOT EDIT. */ |
||||
|
|
||||
|
/*=======Automagically Detected Files To Include=====*/ |
||||
|
#include "unity.h" |
||||
|
|
||||
|
int GlobalExpectCount; |
||||
|
int GlobalVerifyOrder; |
||||
|
char* GlobalOrderError; |
||||
|
|
||||
|
/*=======External Functions This Runner Calls=====*/ |
||||
|
extern void setUp(void); |
||||
|
extern void tearDown(void); |
||||
|
extern void test_to_string(); |
||||
|
extern void test_generateCheckString(); |
||||
|
|
||||
|
|
||||
|
/*=======Mock Management=====*/ |
||||
|
static void CMock_Init(void) |
||||
|
{ |
||||
|
GlobalExpectCount = 0; |
||||
|
GlobalVerifyOrder = 0; |
||||
|
GlobalOrderError = NULL; |
||||
|
} |
||||
|
static void CMock_Verify(void) |
||||
|
{ |
||||
|
} |
||||
|
static void CMock_Destroy(void) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*=======Setup (stub)=====*/ |
||||
|
void setUp(void) {} |
||||
|
|
||||
|
/*=======Teardown (stub)=====*/ |
||||
|
void tearDown(void) {} |
||||
|
|
||||
|
/*=======Test Reset Options=====*/ |
||||
|
void resetTest(void); |
||||
|
void resetTest(void) |
||||
|
{ |
||||
|
tearDown(); |
||||
|
CMock_Verify(); |
||||
|
CMock_Destroy(); |
||||
|
CMock_Init(); |
||||
|
setUp(); |
||||
|
} |
||||
|
void verifyTest(void); |
||||
|
void verifyTest(void) |
||||
|
{ |
||||
|
CMock_Verify(); |
||||
|
} |
||||
|
|
||||
|
/*=======Test Runner Used To Run Each Test=====*/ |
||||
|
static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) |
||||
|
{ |
||||
|
Unity.CurrentTestName = name; |
||||
|
Unity.CurrentTestLineNumber = line_num; |
||||
|
#ifdef UNITY_USE_COMMAND_LINE_ARGS |
||||
|
if (!UnityTestMatches()) |
||||
|
return; |
||||
|
#endif |
||||
|
Unity.NumberOfTests++; |
||||
|
UNITY_CLR_DETAILS(); |
||||
|
UNITY_EXEC_TIME_START(); |
||||
|
CMock_Init(); |
||||
|
if (TEST_PROTECT()) |
||||
|
{ |
||||
|
setUp(); |
||||
|
func(); |
||||
|
} |
||||
|
if (TEST_PROTECT()) |
||||
|
{ |
||||
|
tearDown(); |
||||
|
CMock_Verify(); |
||||
|
} |
||||
|
CMock_Destroy(); |
||||
|
UNITY_EXEC_TIME_STOP(); |
||||
|
UnityConcludeTest(); |
||||
|
} |
||||
|
|
||||
|
/*=======MAIN=====*/ |
||||
|
int main(void) |
||||
|
{ |
||||
|
UnityBegin("test_StringManipulation.c"); |
||||
|
run_test(test_to_string, "test_to_string", 6); |
||||
|
run_test(test_generateCheckString, "test_generateCheckString", 38); |
||||
|
|
||||
|
return UnityEnd(); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
--- |
||||
|
|
||||
|
# Notes: |
||||
|
# Sample project C code is not presently written to produce a release artifact. |
||||
|
# As such, release build options are disabled. |
||||
|
# This sample, therefore, only demonstrates running a collection of unit tests. |
||||
|
|
||||
|
:project: |
||||
|
:use_exceptions: FALSE |
||||
|
:use_test_preprocessor: TRUE |
||||
|
:use_auxiliary_dependencies: TRUE |
||||
|
:build_root: build |
||||
|
# :release_build: TRUE |
||||
|
:test_file_prefix: test_ |
||||
|
:which_ceedling: gem |
||||
|
:ceedling_version: 0.31.1 |
||||
|
:default_tasks: |
||||
|
- test:all |
||||
|
|
||||
|
#:test_build: |
||||
|
# :use_assembly: TRUE |
||||
|
|
||||
|
#:release_build: |
||||
|
# :output: MyApp.out |
||||
|
# :use_assembly: FALSE |
||||
|
|
||||
|
:environment: |
||||
|
|
||||
|
:extension: |
||||
|
:executable: .out |
||||
|
|
||||
|
:paths: |
||||
|
:test: |
||||
|
- +:test/** |
||||
|
- -:test/support |
||||
|
:source: |
||||
|
- /home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/** |
||||
|
:support: |
||||
|
- test/support |
||||
|
:libraries: [] |
||||
|
|
||||
|
:defines: |
||||
|
# in order to add common defines: |
||||
|
# 1) remove the trailing [] from the :common: section |
||||
|
# 2) add entries to the :common: section (e.g. :test: has TEST defined) |
||||
|
:common: &common_defines [] |
||||
|
:test: |
||||
|
- *common_defines |
||||
|
- TEST |
||||
|
:test_preprocess: |
||||
|
- *common_defines |
||||
|
- TEST |
||||
|
|
||||
|
:cmock: |
||||
|
:mock_prefix: mock_ |
||||
|
:when_no_prototypes: :warn |
||||
|
:enforce_strict_ordering: TRUE |
||||
|
:plugins: |
||||
|
- :ignore |
||||
|
- :callback |
||||
|
:treat_as: |
||||
|
uint8: HEX8 |
||||
|
uint16: HEX16 |
||||
|
uint32: UINT32 |
||||
|
int8: INT8 |
||||
|
bool: UINT8 |
||||
|
|
||||
|
# Add -gcov to the plugins list to make sure of the gcov plugin |
||||
|
# You will need to have gcov and gcovr both installed to make it work. |
||||
|
# For more information on these options, see docs in plugins/gcov |
||||
|
:gcov: |
||||
|
:reports: |
||||
|
- HtmlDetailed |
||||
|
:gcovr: |
||||
|
:html_medium_threshold: 75 |
||||
|
:html_high_threshold: 90 |
||||
|
|
||||
|
#:tools: |
||||
|
# Ceedling defaults to using gcc for compiling, linking, etc. |
||||
|
# As [:tools] is blank, gcc will be used (so long as it's in your system path) |
||||
|
# See documentation to configure a given toolchain for use |
||||
|
|
||||
|
# LIBRARIES |
||||
|
# These libraries are automatically injected into the build process. Those specified as |
||||
|
# common will be used in all types of builds. Otherwise, libraries can be injected in just |
||||
|
# tests or releases. These options are MERGED with the options in supplemental yaml files. |
||||
|
:libraries: |
||||
|
:placement: :end |
||||
|
:flag: "-l${1}" |
||||
|
:path_flag: "-L ${1}" |
||||
|
:system: [] # for example, you might list 'm' to grab the math library |
||||
|
:test: [] |
||||
|
:release: [] |
||||
|
|
||||
|
:plugins: |
||||
|
:load_paths: |
||||
|
- "#{Ceedling.load_path}" |
||||
|
:enabled: |
||||
|
- stdout_pretty_tests_report |
||||
|
- module_generator |
||||
|
... |
@ -0,0 +1,21 @@ |
|||||
|
#include <unity.h> |
||||
|
#include "LoginCustomer.h" |
||||
|
void setUp(){}; |
||||
|
void tearDown(){}; |
||||
|
void test_checkLogin() |
||||
|
{ |
||||
|
/*arrange*/ |
||||
|
bool expected_test_values_compute_to_true[] = {4==4,true==true, 1==1, false==false, 'z'=='z', '='=='=',0x1A==0x1A}; |
||||
|
int length_1 = sizeof(expected_test_values_compute_to_true)/sizeof(bool); |
||||
|
|
||||
|
bool expected_test_values_compute_to_false[] = {4!=4,true==false,1==0,false==true,'z'=='x','!'==')',0x1A==0x2B}; |
||||
|
int length_2 = sizeof(expected_test_values_compute_to_false)/sizeof(bool); |
||||
|
|
||||
|
/*act and assertions*/ |
||||
|
for(int i=0;i<7;++i) { |
||||
|
TEST_ASSERT_TRUE(checkLogin(expected_test_values_compute_to_true[i])); |
||||
|
} |
||||
|
for(int i=0;i<7;++i){ |
||||
|
TEST_ASSERT_FALSE(checkLogin(expected_test_values_compute_to_false[i])); |
||||
|
} |
||||
|
} |
@ -0,0 +1,83 @@ |
|||||
|
#include "unity.h" |
||||
|
#include "StringManipulation.h" |
||||
|
#include <time.h> |
||||
|
#include <string.h> |
||||
|
|
||||
|
void test_to_string() |
||||
|
{ |
||||
|
/*initializing test values*/ |
||||
|
char *result_1[] = {"0","1","2","3","4","5","6","7","8","9","10"}; |
||||
|
char *result_2[] = {"500","502","504","506","508","510","512","514","516","518"}; |
||||
|
char *result_3[] = {"1000","2000","3000","4000","5000","6000","7000","8000","9000","10000"}; |
||||
|
char *result_4[] = {"9999","8999","7999","6999","5999","4999","3999","2999","1999","999"}; |
||||
|
char *result_5[] = {"1000000","2000000","3000000","4000000","5000000","6000000","7000000", |
||||
|
"8000000","9000000","10000000"}; |
||||
|
|
||||
|
for(int i=0;i<=10;++i){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_1[i],to_string(i)); |
||||
|
} |
||||
|
|
||||
|
for(int i=0, j=500;i<10;++i,j+=2){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_2[i],to_string(j)); |
||||
|
} |
||||
|
|
||||
|
for(int i=0, j=1000;i<10;++i,j+=1000){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_3[i],to_string(j)); |
||||
|
} |
||||
|
|
||||
|
for(int i=0, j=9999;i<10;++i,j-=1000){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_4[i], to_string(j)); |
||||
|
} |
||||
|
for(int i=0, j=1000000;i<10;++i,j+=1000000){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_5[i],to_string(j)); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
void test_generateCheckString() |
||||
|
{ |
||||
|
/*test block 1*/ |
||||
|
int numbers_1[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; |
||||
|
char *strings_1[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; |
||||
|
char *result_1[] = {"0=a","1=b","2=c","3=d","4=e","5=f","6=g","7=h","8=i","9=j","10=k","11=l","12=m","13=n","14=o","15=p","16=q","17=r", "18=s","19=t","20=u","21=v","22=w","23=x","24=y","25=z"}; |
||||
|
for(int i=0;i<26;++i){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_1[i],generateCheckString(numbers_1[i],*(strings_1+i))); |
||||
|
} |
||||
|
/*test block 2*/ |
||||
|
int numbers_2[] = {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025}; |
||||
|
char *strings_2[] = {"z","zy","zyx","zyxw","zyxwv","zyxwvu","zyxwvut","zyxwvuts","zyxwvutsr","zyxwvutsrq","zyxwvutsrqp", |
||||
|
"zyxwvutsrqpo","zyxwvutsrqpon","zyxwvutsrqponm","zyxwvutsrqponml","zyxwvutsrqponmlk", |
||||
|
"zyxwvutsrqponmlkj","zyxwvutsrqponmlkji","zyxwvutsrqponmlkjih","zyxwvutsrqponmlkjihg","zyxwvutsrqponmlkjihgf", |
||||
|
"zyxwvutsrqponmlkjihgfe","zyxwvutsrqponmlkjihgfed","zyxwvutsrqponmlkjihgfedc","zyxwvutsrqponmlkjihgfedcb", |
||||
|
"zyxwvutsrqponmlkjihgfedcba"}; |
||||
|
char *result_2[] = {"0=z","1=zy","1=zyx","2=zyxw","3=zyxwv","5=zyxwvu","8=zyxwvut","13=zyxwvuts","21=zyxwvutsr","34=zyxwvutsrq", |
||||
|
"55=zyxwvutsrqp","89=zyxwvutsrqpo","144=zyxwvutsrqpon","233=zyxwvutsrqponm","377=zyxwvutsrqponml", |
||||
|
"610=zyxwvutsrqponmlk","987=zyxwvutsrqponmlkj","1597=zyxwvutsrqponmlkji","2584=zyxwvutsrqponmlkjih", |
||||
|
"4181=zyxwvutsrqponmlkjihg","6765=zyxwvutsrqponmlkjihgf","10946=zyxwvutsrqponmlkjihgfe", |
||||
|
"17711=zyxwvutsrqponmlkjihgfed","28657=zyxwvutsrqponmlkjihgfedc","46368=zyxwvutsrqponmlkjihgfedcb", |
||||
|
"75025=zyxwvutsrqponmlkjihgfedcba"}; |
||||
|
for(int i=0;i<26;++i){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_2[i],generateCheckString(numbers_2[i],*(strings_2+i))); |
||||
|
} |
||||
|
/*test block 3*/ |
||||
|
srand(time(0)); |
||||
|
int random_number=0; |
||||
|
char *random_numbers_strings[20]; |
||||
|
int random_numbers[20]; |
||||
|
for(int i=0;i<20;++i){ |
||||
|
random_number = (rand() % 100) + 1; |
||||
|
random_numbers_strings[i] = to_string(random_number); |
||||
|
random_numbers[i] = random_number; |
||||
|
} |
||||
|
char *strings_3[] = {"tree","plant","tea","programming","assembler","unix","BSD","snow","mountain","table","wood","forest", "calculator","book","light","keyboard","old","paper","pencil","voltage"}; |
||||
|
char *result_3[20]; |
||||
|
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]); |
||||
|
} |
||||
|
for(int i=0;i<20;++i){ |
||||
|
TEST_ASSERT_EQUAL_STRING(result_3[i],generateCheckString(random_numbers[i],strings_3[i])); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue