diff --git a/src/depositMoney.c b/src/depositMoney.c index 99cd553..5732f7e 100644 --- a/src/depositMoney.c +++ b/src/depositMoney.c @@ -25,13 +25,15 @@ void askToTryAgain(bool afterError, int customerID){ bool depositMoney(int customerID){ float availableAccountBalance=getAvailableAccountBalance(customerID); - + if(availableAccountBalance<0){ + printf("\nCould not retreive account balance. Please contact staff.\n"); + } float amountToDeposit = 0; printf("\nPlease enter the amount you want to deposit: "); scanf("%f", &amountToDeposit); - if(amountToDeposit>0 && amountToDeposit>MINIMUM_DEPOSIT_AMOUNT){ + if(amountToDeposit>=0 && amountToDeposit>MINIMUM_DEPOSIT_AMOUNT){ if(updateAvailableAccountBalance(customerID, availableAccountBalance+amountToDeposit)){ printf("\nYou have successfully deposited %.2f. New account balance is %.2f", amountToDeposit, availableAccountBalance+amountToDeposit); askToTryAgain(false,customerID); diff --git a/src/sendmoney.c b/src/sendmoney.c index 848faa3..683966e 100644 --- a/src/sendmoney.c +++ b/src/sendmoney.c @@ -1,6 +1,7 @@ #include "sendMoney.h" #include "depositMoney.c" #include "withdrawMoney.c" +#include "currencyExchange.c" void showBalance(int customerID){ float balance=getAvailableAccountBalance(customerID); @@ -9,6 +10,47 @@ void showBalance(int customerID){ printf(":.:.:.:.:.:\n"); } +float askToConvert(float input, int customerID){ + char c; + char symbol[]=""; + int id; + float converted; + printf("\nWould you like to convert the amount from € to another currency?[y] yes [any] no\n"); + scanf(" %c",&c); + if(c=='y'||c=='Y'){ + printf("\nPlease select from one of the following currencties to convert to:"); + printf("\n[1] USD"); + printf("\n[2] GBP"); + printf("\n[3] YEN"); + printf("\n[4] YUAN\n"); + scanf("%d",&id); + + if(id>0&&id<5){ + converted=convert(input,id); + }else{ + return 0; + } + switch(id){ + case 1: + symbol[0]='$'; + break; + case 2: + symbol[0]='P'; + break; + case 3: + symbol[0]='Y'; + break; + case 4: + symbol[0]='X'; + break; + } + printf("\nYou have successfuly transfered %.2f%s to [%d]",converted, symbol,customerID); + return converted; + }else{ + return 0; + } +} + void askToShowBalance(int customerID){ char c; printf("\nWould you like to see your remaining balance? [y] yes [any] no\n"); @@ -40,7 +82,8 @@ bool sendMoney(int customerID){ else{ if(withdrawSpecificAmount(customerID, amountToSend)){ if(depositSpecificAmount(recID, amountToSend)){ - printf("\nYou have successfuly transfered %.2f€ to [%d]",amountToSend,recID); + askToConvert(amountToSend, recID); + //printf("\nYou have successfuly transfered %.2f€ to [%d]",amountToSend,recID); askToShowBalance(customerID); return true; } @@ -53,7 +96,8 @@ bool sendMoney(int customerID){ }else{ printf("\nThis ID is not from a customer of our bank. A transfer fee of %.2f€ will be taken.\n", TRANSFER_FEE); if(withdrawSpecificAmount(customerID, amountToSend+TRANSFER_FEE)){ - printf("\nYou have successfuly transfered %.2f€ to [%d]\n",amountToSend,recID); + askToConvert(amountToSend, recID); + //printf("\nYou have successfuly transfered %.2f€ to [%d]\n",amountToSend,recID); askToShowBalance(customerID); return true; } @@ -71,7 +115,7 @@ bool sendMoney(int customerID){ return false; } -// int main(){ -// sendMoney(1234); -// return 0; -// } \ No newline at end of file +int main(){ + sendMoney(1234); + return 0; +} \ No newline at end of file diff --git a/src/sendmoney.h b/src/sendmoney.h index e715643..df64387 100644 --- a/src/sendmoney.h +++ b/src/sendmoney.h @@ -7,6 +7,7 @@ #define TRANSFER_FEE 0.8 void showBalance(int customerID); +float askToConvert(float input, int customerID); void askToShowBalance(int customerID); bool sendMoney(int customerID); diff --git a/tests/test_sendmoney.c b/tests/test_sendmoney.c deleted file mode 100644 index 66be905..0000000 --- a/tests/test_sendmoney.c +++ /dev/null @@ -1,69 +0,0 @@ -#ifdef TEST -#include -#include - -void setUp(void) -{ -} - -void tearDown(void) -{ -} -// hier wird die Methode checkAccount getestet -void test_sendmoney_NeedToImplement(void) -{ - // Arrage - - int accountNumber = 1234567; - int accountNumber2 = 5555557; - - // hier soll false sein - int accountNumber3 = 53323; - int accountNumber4 = 34342; - bool expected; - bool expected2; - bool expected3; - bool expected4; - // Act - - expected = checkAccount(accountNumber); - expected2 = checkAccount(accountNumber2); - expected3 = checkAccount(accountNumber3); - expected4 = checkAccount(accountNumber4); - - // Assert - - TEST_ASSERT_TRUE(expected); - TEST_ASSERT_TRUE(expected2); - TEST_ASSERT_FALSE(expected3); - TEST_ASSERT_FALSE(expected4); -} - -// hier wird die Methode getAvailableAccountBalance()getestet -void test_getAvailableAccountBalance(void) -{ - - // Arrage - - double expected1 = 24.0; - int length = 2; - - // Act - - double result = getAvailableAccountBalance(length); - - // Assert - TEST_ASSERT_EQUAL(expected1, result); -} -// hier wird die Methode getAmount() getestet -void test_getAmount(void) -{ - // Arrage - float expected = 500.1; - - float result = getAmount(expected); - - TEST_ASSERT_EQUAL(expected, result); -} - -#endif // TEST diff --git a/tests/test_updateCustomerAccountBalance.c b/tests/test_updateCustomerAccountBalance.c index 91bdd62..5b5454b 100644 --- a/tests/test_updateCustomerAccountBalance.c +++ b/tests/test_updateCustomerAccountBalance.c @@ -34,13 +34,13 @@ void test_updateAvailableAccountBalanceSuccess(void){ /* Arrange */ - int length = 10; + int length = 5; - float amountToUpdate[] = {200.5, 340, 244.5, 340, 1200, 3232, 1123, 460.5, 900, 1005}; - float userIDs[] = {1001,1002,1003,1004,1005,1006,1007,1008,1009,1010}; + float amountToUpdate[] = {200.5, 340, 244.5, 340, 1200}; + int userIDs[] = {1234,1235,1236,1237,1238}; float expectedValue[length]; - float result[length]; + bool result[length]; /* Act */ @@ -51,11 +51,7 @@ void test_updateAvailableAccountBalanceSuccess(void){ /* Assert */ for (int i = 0; i < length; i++) { - expectedValue[i] = amountToUpdate[i]; - } - - for (int i = 0; i < length; i++) { - TEST_ASSERT_EQUAL_FLOAT(expectedValue[i],result[i]); + TEST_ASSERT_TRUE(result[i]); } }