package com.github.ggeorgovassilis.springjsonmapper.services;
import com.github.ggeorgovassilis.springjsonmapper.services.Account;
import com.github.ggeorgovassilis.springjsonmapper.services.Customer;
/**
* Functional interface for a bank service. Tests will extend this interface and redefine methods with their respective framework annotations.
* This functional interface is kept clean of annotations so that the test code can be reused for various implementations such as spring annotations
* and jax-rs annotations
* @author george georgovassilis
*
*/
public interface BankService {
Account transfer(Account fromAccount, Customer actor, Account toAccount, int amount, boolean sendConfirmationSms);
Boolean checkAccount(Account account);
byte[] updatePhoto(String name, byte[] photo);
Account joinAccounts(Account account1, Account account2);
Customer authenticate(String name, String password, String sessionId);
Account getAccount(int id);
boolean isSessionAlive(String sid);
boolean doesCustomerExist(String name);
}