diff --git a/pom.xml b/pom.xml index 0a99788..84a3e94 100644 --- a/pom.xml +++ b/pom.xml @@ -21,10 +21,16 @@ UTF-8 UTF-8 - 1.7 + 1.8 + + junit + junit + 4.12 + test + org.springframework.boot spring-boot-starter-web @@ -44,11 +50,40 @@ runtime + + + mysql + mysql-connector-java + 5.1.6 + + + com.h2database + h2 + compile + + + org.mockito + mockito-core + 2.18.0 + javax.inject javax.inject 1 + + + org.springframework + spring-test + 4.3.13.RELEASE + test + + + org.springframework.boot + spring-boot-test-autoconfigure + 1.5.9.RELEASE + test + diff --git a/src/main/java/io/zipcoder/ZcwbankApplication.java b/src/main/java/io/zipcoder/ZcwbankApplication.java index 60df46b..e5d6466 100644 --- a/src/main/java/io/zipcoder/ZcwbankApplication.java +++ b/src/main/java/io/zipcoder/ZcwbankApplication.java @@ -2,6 +2,8 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; @SpringBootApplication public class ZcwbankApplication { @@ -9,4 +11,6 @@ public class ZcwbankApplication { public static void main(String[] args) { SpringApplication.run(ZcwbankApplication.class, args); } + + } diff --git a/src/main/java/io/zipcoder/controller/AccountController.java b/src/main/java/io/zipcoder/controller/AccountController.java new file mode 100644 index 0000000..98ff6e6 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/AccountController.java @@ -0,0 +1,51 @@ +package io.zipcoder.controller; + + +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.service.AccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +public class AccountController { + @Autowired + private AccountService accountService; + + + public AccountController(AccountService accountService){ + this.accountService = accountService; + } + + @RequestMapping(value = "/accounts", method = RequestMethod.GET) + public ResponseEntity getAllAccounts(){ + return accountService.getAllAccounts(); + } + + @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.GET) + public ResponseEntity getAccountById(@PathVariable("accountId") Long accountId){ + return accountService.getAccountById(accountId); + } + + @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.GET) + public ResponseEntity getAccountsForCustomer(@PathVariable("customerId") Long customerId){ + return accountService.getAccountsOfCustomer(customerId); + } + + @RequestMapping(value = "/customers/{customerId}/accounts", method = RequestMethod.POST) + public ResponseEntity createAccount(@PathVariable ("customerId") Long customerId, @RequestBody Account account){ + return accountService.createAccount(customerId, account); + } + + @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.PUT) + public ResponseEntity updateAccount(@PathVariable("accountId") Long accountId, @RequestBody Account account){ + return accountService.updateAccount(account, accountId); + } + + @RequestMapping(value = "/accounts/{accountId}", method = RequestMethod.DELETE) + public ResponseEntity deleteAccount(@PathVariable("accountId") Long accountId){ + return accountService.deleteAccount(accountId); + } +} diff --git a/src/main/java/io/zipcoder/controller/BillController.java b/src/main/java/io/zipcoder/controller/BillController.java new file mode 100644 index 0000000..23f86fd --- /dev/null +++ b/src/main/java/io/zipcoder/controller/BillController.java @@ -0,0 +1,53 @@ +package io.zipcoder.controller; + +import io.zipcoder.domain.Bill; +import io.zipcoder.service.BillService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +public class BillController { + + @Autowired + private BillService billService; + + public BillController() {} + + public BillController(BillService billService) { + this.billService = billService; + } + + @RequestMapping(value="/accounts/{accountId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForAccount(@PathVariable("accountId") Long accountId) { + return billService.getAllBillsForAccount(accountId); + } + + @RequestMapping(value="/bills/{billId}", method= RequestMethod.GET) + public ResponseEntity getBillById(@PathVariable("billId") Long billId) { + return billService.getBillById(billId); + } + + @RequestMapping(value="/customers/{customerId}/bills", method= RequestMethod.GET) + public ResponseEntity> getAllBillsForCustomer(@PathVariable Long customerId) { + return billService.getAllBillsForCustomer(); + } + + @RequestMapping(value="/accounts/{accountId}/bills", method = RequestMethod.POST) + public ResponseEntity createBill(@PathVariable Long accountId, @RequestBody Bill bill) { + return billService.createBill(bill); + } + + @RequestMapping(value = "/bills/{billId}", method = RequestMethod.PUT) + public ResponseEntity updateBill(@PathVariable Long billId, @RequestBody Bill bill) { + return billService.updateBill(bill); + } + + @RequestMapping(value = "/bills/{billId}", method = RequestMethod.DELETE) + public ResponseEntity deleteBill(@PathVariable Long billId) { + return billService.deleteBill(billId); + } + + + +} diff --git a/src/main/java/io/zipcoder/controller/CustomerController.java b/src/main/java/io/zipcoder/controller/CustomerController.java new file mode 100644 index 0000000..5e3ec62 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/CustomerController.java @@ -0,0 +1,47 @@ +package io.zipcoder.controller; + + +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.CustomerRepository; +import io.zipcoder.service.AccountService; +import io.zipcoder.service.CustomerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +public class CustomerController { + + private CustomerService customerService; + + @Autowired + public CustomerController(CustomerService customerService){ + this.customerService = customerService; + } + + @RequestMapping(value = "/customers", method = RequestMethod.GET) + public ResponseEntity> getAllCustomers(){ + return customerService.getAllCustomers(); + } + + @RequestMapping(value = "/customers/{id}", method = RequestMethod.GET) + public ResponseEntity getCustomerById(@PathVariable("id") Long id){ + return customerService.getCustomerById(id); + } + + @RequestMapping(value = "/accounts/{accountId}/customer", method = RequestMethod.GET) + public ResponseEntity getCustomer(@PathVariable("accountId") Long accountId){ + return customerService.getCustomerOfAccount(accountId); + } + + @RequestMapping(value = "/customers", method = RequestMethod.POST) + public ResponseEntity createCustomer(@RequestBody Customer customer){ + return customerService.createCustomer(customer); + } + + @RequestMapping(value = "/customers/{id}", method = RequestMethod.PUT) + public ResponseEntity updateCustomer(@PathVariable("id") Long id, @RequestBody Customer customer){ + return customerService.updateCustomer(customer, id); + } +} diff --git a/src/main/java/io/zipcoder/controller/DepositController.java b/src/main/java/io/zipcoder/controller/DepositController.java new file mode 100644 index 0000000..8928240 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/DepositController.java @@ -0,0 +1,48 @@ +package io.zipcoder.controller; + + +import io.zipcoder.domain.Deposit; +import io.zipcoder.service.DepositService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +public class DepositController { + + + private DepositService depositService; + + @Autowired + public DepositController(DepositService depositService) { + this.depositService = depositService; + } + + @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.GET) + public ResponseEntity getDepositsByAccount(@PathVariable("accountId") Long accountId) { + return depositService.getDepositsByAccount(accountId); + } + + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.GET) + public ResponseEntity getDeposit(@PathVariable("depositId") Long depositId) { + return depositService.getDeposit(depositId); + } + + @RequestMapping(value="/accounts/{accountId}/deposits", method = RequestMethod.POST) + public ResponseEntity createDeposit(@PathVariable("accountId") Long accountId, @RequestBody Deposit deposit) { + return depositService.createDeposit(deposit, accountId); + } + + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.PUT) + public ResponseEntity updateDeposit(@PathVariable("depositId") Long depositId, @RequestBody Deposit deposit) { + return depositService.updateDeposit(deposit, depositId); + } + + @RequestMapping(value="/deposits/{depositId}", method = RequestMethod.DELETE) + public ResponseEntity deleteDeposit(@PathVariable("depositId") Long depositId) { + return depositService.deleteDeposit(depositId); + } + +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/controller/WithdrawalController.java b/src/main/java/io/zipcoder/controller/WithdrawalController.java new file mode 100644 index 0000000..45e3657 --- /dev/null +++ b/src/main/java/io/zipcoder/controller/WithdrawalController.java @@ -0,0 +1,45 @@ +package io.zipcoder.controller; + +import io.zipcoder.domain.Withdrawal; +import io.zipcoder.service.WithdrawalService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +public class WithdrawalController { + + @Autowired + private WithdrawalService withdrawalService; + + public WithdrawalController(WithdrawalService withdrawalService) { + this.withdrawalService = withdrawalService; + } + + @RequestMapping(value="accounts/{acountId}/withdrawals", method = RequestMethod.GET) + public ResponseEntity getWithdrawalsByAccount(@PathVariable("accountId") Long accountId) { + return withdrawalService.getWithdrawalsByAccount(accountId); + } + + @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.GET) + public ResponseEntity getWithdrawal(@PathVariable("withdrawalId") Long withdrawalId) { + return withdrawalService.getWithdrawal(withdrawalId); + } + + @RequestMapping(value="/accounts/{accountId}/withdrawals", method = RequestMethod.POST) + public ResponseEntity createWithdrawal(@PathVariable("accountId") Long accountId, @RequestBody Withdrawal withdrawal) { + return withdrawalService.createWithdrawal(withdrawal, accountId); + } + + @RequestMapping(value="/withdrawals/{withdrawalId}" , method = RequestMethod.PUT) + public ResponseEntity updateWithdrawal(@PathVariable("withdrawalId") Long withdrawalId, @RequestBody Withdrawal withdrawal) { + return withdrawalService.updateWithdrawal(withdrawal, withdrawalId); + } + + @RequestMapping(value="/withdrawals/{withdrawalId}", method = RequestMethod.DELETE) + public ResponseEntity deleteWithdrawal(@PathVariable("withdrawalId") Long withdrawalId) { + return withdrawalService.deleteWithdrawal(withdrawalId); + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/domain/Account.java b/src/main/java/io/zipcoder/domain/Account.java new file mode 100644 index 0000000..71166d9 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Account.java @@ -0,0 +1,76 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +public class Account { + + @Id + @GeneratedValue + @Column(name ="ACCOUNT_ID") + private Long id; + + @Column(name = "ACCOUNT_TYPE") + private String type; + + @Column(name = "NICKNAME") + private String nickname; + + @Column(name = "REWARDS") + private Integer rewards; + + @Column(name="BALANCE") + private Double balance; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "CUSTOMER_ID") + private Customer customer; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Integer getRewards() { + return rewards; + } + + public void setRewards(Integer rewards) { + this.rewards = rewards; + } + + public Double getBalance() { + return balance; + } + + public void setBalance(Double balance) { + this.balance = balance; + } + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } +} diff --git a/src/main/java/io/zipcoder/domain/AccountType.java b/src/main/java/io/zipcoder/domain/AccountType.java new file mode 100644 index 0000000..437bbfe --- /dev/null +++ b/src/main/java/io/zipcoder/domain/AccountType.java @@ -0,0 +1,10 @@ +package io.zipcoder.domain; + +public enum AccountType { +SAVINGS("savings"), CHECKING("checking"), CREDIT("credit"); + +private String type; +AccountType(String type){ + this.type = type; +} +} diff --git a/src/main/java/io/zipcoder/domain/Address.java b/src/main/java/io/zipcoder/domain/Address.java new file mode 100644 index 0000000..547704c --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Address.java @@ -0,0 +1,77 @@ +package io.zipcoder.domain; + + +import javax.persistence.*; + +@Entity +public class Address { + + @Id + @GeneratedValue + @Column(name = "ADDRESS_ID") + private Long id; + + @Column(name = "STREET_NUMBER") + private String street_number; + + @Column(name = "STREET_NAME") + private String street_name; + + @Column(name = "CITY") + private String city; + + @Column(name = "STATE") + private String state; + + @Column(name = "ZIP") + private String zip; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStreet_number() { + return street_number; + } + + public void setStreet_number(String street_number) { + this.street_number = street_number; + } + + public String getStreet_name() { + return street_name; + } + + public void setStreet_name(String street_name) { + this.street_name = street_name; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getZip() { + return zip; + } + + public void setZip(String zip) { + this.zip = zip; + } +} diff --git a/src/main/java/io/zipcoder/domain/Bill.java b/src/main/java/io/zipcoder/domain/Bill.java new file mode 100644 index 0000000..e4856dc --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Bill.java @@ -0,0 +1,134 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +public class Bill { + + @Id + @GeneratedValue + @Column(name = "BILL_ID") + private Long id; + + @Column(name = "STATUS") + private String status; + + @Column(name = "PAYEE") + private String payee; + + @Column(name = "NICKNAME") + private String nickname; + + @Column(name = "CREATION_DATE") + private String creation_date; + + @Column(name = "PAYMENT_DATE") + private String payment_date; + + @Column(name = "RECURRING_DATE") + private Integer recurring_date; + + @Column(name = "UPCOMING_PAYMENT_DATE") + private String upcoming_payment_date; + + @Column(name = "PAYMENT_AMOUNT") + private Double payment_amount; + + @ManyToOne + @JoinColumn(name = "ACCOUNT_ID") +// private String account_id; + private Account account; + + public Bill() { + + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getPayee() { + return payee; + } + + public void setPayee(String payee) { + this.payee = payee; + } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public String getCreation_date() { + return creation_date; + } + + public void setCreation_date(String creation_date) { + this.creation_date = creation_date; + } + + public String getPayment_date() { + return payment_date; + } + + public void setPayment_date(String payment_date) { + this.payment_date = payment_date; + } + + public Integer getRecurring_date() { + return recurring_date; + } + + public void setRecurring_date(Integer recurring_date) { + this.recurring_date = recurring_date; + } + + public String getUpcoming_payment_date() { + return upcoming_payment_date; + } + + public void setUpcoming_payment_date(String upcoming_payment_date) { + this.upcoming_payment_date = upcoming_payment_date; + } + + public Double getPayment_amount() { + return payment_amount; + } + + public void setPayment_amount(Double payment_amount) { + this.payment_amount = payment_amount; + } + +// public String getAccount_id() { +// return account_id; +// } +// +// public void setAccount_id(String account_id) { +// this.account_id = account_id; +// } + + public Account getAccount() { + return account; + } + + public void setAccount(Account account) { + this.account = account; + } + +} diff --git a/src/main/java/io/zipcoder/domain/Customer.java b/src/main/java/io/zipcoder/domain/Customer.java new file mode 100644 index 0000000..dc0e5d8 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Customer.java @@ -0,0 +1,58 @@ +package io.zipcoder.domain; + +import javax.persistence.*; +import java.util.List; +import java.util.Set; + + +@Entity +public class Customer { + + @Id + @GeneratedValue + @Column(name = "CUSTOMER_ID") + private Long id; + + @Column(name = "FIRST_NAME") + private String first_name; + + @Column(name="LAST_NAME") + private String last_name; + + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(name = "ADDRESS_ID") + private Set
addresses; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFirst_name() { + return first_name; + } + + public void setFirst_name(String first_name) { + this.first_name = first_name; + } + + public String getLast_name() { + return last_name; + } + + public void setLast_name(String last_name) { + this.last_name = last_name; + } + + public Set
getAddress() { + return addresses; + } + + public void setAddress(Set
addresses) { + this.addresses = addresses; + } +} diff --git a/src/main/java/io/zipcoder/domain/Deposit.java b/src/main/java/io/zipcoder/domain/Deposit.java new file mode 100644 index 0000000..b216018 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Deposit.java @@ -0,0 +1,120 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +public class Deposit { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name= "DEPOSIT_ID") + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name= "TYPE") + private TransactionType type; + + @Column(name= "TRANSACTION_DATE") + private String transaction_date; + + @Enumerated(EnumType.STRING) + @Column(name= "STATUS") + private TransactionStatus status; + + @Column(name= "PAYEE_ID") + private Long payee_id; + + @Enumerated(EnumType.STRING) + @Column(name= "MEDIUM") + private Medium medium; + + @Column(name= "AMOUNT") + private Double amount; + + @Column(name= "DESCRIPTION") + private String description; + + + public Deposit(Long id, TransactionType type, String transaction_date, TransactionStatus status, + Long payer_id, Medium medium, Double amount, String description) { + + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public TransactionType getType() { + return type; + } + + public void setType(TransactionType type) { + this.type = type; + } + + public String getTransaction_date() { + return transaction_date; + } + + public void setTransaction_date(String transaction_date) { + this.transaction_date = transaction_date; + } + + public TransactionStatus getStatus() { + return status; + } + + public void setStatus(TransactionStatus status) { + this.status = status; + } + + public Long getPayer_id() { + return payee_id; + } + + public void setPayer_id(Long payer_id) { + this.payee_id = payer_id; + } + + public Medium getMedium() { + return medium; + } + + public void setMedium(Medium medium) { + this.medium = medium; + } + + public Double getAmount() { + return amount; + } + + public void setAmount(Double amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + return "Deposit{" + + "id=" + id + + ", type='" + type + '\'' + + ", transaction_date='" + transaction_date + '\'' + + ", status='" + status + '\'' + + ", payer_id=" + payee_id + + ", medium='" + medium + '\'' + + ", amount=" + amount + + ", description='" + description + '\'' + + '}'; + } +} diff --git a/src/main/java/io/zipcoder/domain/Medium.java b/src/main/java/io/zipcoder/domain/Medium.java new file mode 100644 index 0000000..c370bda --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Medium.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum Medium { + BALANCE, REWARDS +} diff --git a/src/main/java/io/zipcoder/domain/TransactionStatus.java b/src/main/java/io/zipcoder/domain/TransactionStatus.java new file mode 100644 index 0000000..5340b5b --- /dev/null +++ b/src/main/java/io/zipcoder/domain/TransactionStatus.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum TransactionStatus { + PENDING, CANCELLED, COMPLETED +} diff --git a/src/main/java/io/zipcoder/domain/TransactionType.java b/src/main/java/io/zipcoder/domain/TransactionType.java new file mode 100644 index 0000000..b6cb854 --- /dev/null +++ b/src/main/java/io/zipcoder/domain/TransactionType.java @@ -0,0 +1,5 @@ +package io.zipcoder.domain; + +public enum TransactionType { + P2P, DEPOSIT, WITHDRAWAL +} diff --git a/src/main/java/io/zipcoder/domain/Withdrawal.java b/src/main/java/io/zipcoder/domain/Withdrawal.java new file mode 100644 index 0000000..85074fd --- /dev/null +++ b/src/main/java/io/zipcoder/domain/Withdrawal.java @@ -0,0 +1,120 @@ +package io.zipcoder.domain; + +import javax.persistence.*; + +@Entity +public class Withdrawal { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name= "WITHDRAWAL_ID") + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name= "TYPE") + private TransactionType type; + + @Column(name= "TRANSACTION_DATE") + private String transaction_date; + + @Enumerated(EnumType.STRING) + @Column(name= "STATUS") + private TransactionStatus status; + + @Column(name= "PAYER_ID") + private Long payer_id; + + @Enumerated(EnumType.STRING) + @Column(name= "MEDIUM") + private Medium medium; + + @Column(name= "AMOUNT") + private Double amount; + + @Column(name= "DESCRIPTION") + private String description; + + + public Withdrawal(Long id, TransactionType type, String transaction_date, TransactionStatus status, + Long payer_id, Medium medium, Double amount, String description) { + + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public TransactionType getType() { + return type; + } + + public void setType(TransactionType type) { + this.type = type; + } + + public String getTransaction_date() { + return transaction_date; + } + + public void setTransaction_date(String transaction_date) { + this.transaction_date = transaction_date; + } + + public TransactionStatus getStatus() { + return status; + } + + public void setStatus(TransactionStatus status) { + this.status = status; + } + + public Long getPayer_id() { + return payer_id; + } + + public void setPayer_id(Long payer_id) { + this.payer_id = payer_id; + } + + public Medium getMedium() { + return medium; + } + + public void setMedium(Medium medium) { + this.medium = medium; + } + + public Double getAmount() { + return amount; + } + + public void setAmount(Double amount) { + this.amount = amount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + return "Withdrawal{" + + "id=" + id + + ", type='" + type + '\'' + + ", transaction_date='" + transaction_date + '\'' + + ", status='" + status + '\'' + + ", payer_id=" + payer_id + + ", medium='" + medium + '\'' + + ", amount=" + amount + + ", description='" + description + '\'' + + '}'; + } +} diff --git a/src/main/java/io/zipcoder/repository/AccountRepository.java b/src/main/java/io/zipcoder/repository/AccountRepository.java new file mode 100644 index 0000000..7663599 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/AccountRepository.java @@ -0,0 +1,10 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; + +public interface AccountRepository extends CrudRepository { +IterablefindAllByCustomer_Id(Long customerId); +} diff --git a/src/main/java/io/zipcoder/repository/BillRepository.java b/src/main/java/io/zipcoder/repository/BillRepository.java new file mode 100644 index 0000000..8d0f16a --- /dev/null +++ b/src/main/java/io/zipcoder/repository/BillRepository.java @@ -0,0 +1,15 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Bill; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface BillRepository extends CrudRepository{ + + Iterable findAllByAccount_Id(Long accountId); + + Iterable findAllByAccount_Customer_Id(Long customerId); + + Iterable findById(Long billId); +} diff --git a/src/main/java/io/zipcoder/repository/CustomerRepository.java b/src/main/java/io/zipcoder/repository/CustomerRepository.java new file mode 100644 index 0000000..c0ea981 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/CustomerRepository.java @@ -0,0 +1,10 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; + +public interface CustomerRepository extends CrudRepository { + +} diff --git a/src/main/java/io/zipcoder/repository/DepositRepository.java b/src/main/java/io/zipcoder/repository/DepositRepository.java new file mode 100644 index 0000000..cfc9918 --- /dev/null +++ b/src/main/java/io/zipcoder/repository/DepositRepository.java @@ -0,0 +1,12 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Deposit; +import org.springframework.data.repository.CrudRepository; + +public interface DepositRepository extends CrudRepository { + + IterablefindAllByPayee_Id(Long payeeId); + +// Deposit getDepositById(Long id); + +} diff --git a/src/main/java/io/zipcoder/repository/WithdrawalRepository.java b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java new file mode 100644 index 0000000..40ab2ef --- /dev/null +++ b/src/main/java/io/zipcoder/repository/WithdrawalRepository.java @@ -0,0 +1,10 @@ +package io.zipcoder.repository; + +import io.zipcoder.domain.Withdrawal; +import org.springframework.data.repository.CrudRepository; + +public interface WithdrawalRepository extends CrudRepository { + + IterablefindAllByPayer_Id(Long payerId); + +} diff --git a/src/main/java/io/zipcoder/service/AccountService.java b/src/main/java/io/zipcoder/service/AccountService.java new file mode 100644 index 0000000..070bed7 --- /dev/null +++ b/src/main/java/io/zipcoder/service/AccountService.java @@ -0,0 +1,61 @@ +package io.zipcoder.service; + + +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.AccountRepository; +import io.zipcoder.repository.CustomerRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; + +@Service +public class AccountService { + + private AccountRepository accountRepository; + private CustomerRepository customerRepository; + + @Autowired + public AccountService(AccountRepository accountRepository, CustomerRepository customerRepository){ + this.accountRepository = accountRepository; + this.customerRepository = customerRepository; + } + + public ResponseEntity getAllAccounts(){ + Iterable accounts = accountRepository.findAll(); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity getAccountById(Long id){ + Account account = accountRepository.findOne(id); + return new ResponseEntity<>(account, HttpStatus.OK); + } + + public ResponseEntity getAccountsOfCustomer(Long customerId){ + Iterable accounts = accountRepository.findAllByCustomer_Id(customerId); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity createAccount(Long customerId, Account account){ + Customer customer = customerRepository.findOne(customerId); + account.setCustomer(customer); + Account account1 = accountRepository.save(account); + return new ResponseEntity<>(account1, HttpStatus.CREATED); + } + + public ResponseEntity updateAccount(Account account, Long accountId){ + account.setId(accountId); + Account account1 = accountRepository.save(account); + return new ResponseEntity<>(account1, HttpStatus.OK); + } + + public ResponseEntity deleteAccount(Long accountId){ + accountRepository.delete(accountId); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/src/main/java/io/zipcoder/service/BillService.java b/src/main/java/io/zipcoder/service/BillService.java new file mode 100644 index 0000000..a7afb2e --- /dev/null +++ b/src/main/java/io/zipcoder/service/BillService.java @@ -0,0 +1,71 @@ +package io.zipcoder.service; + +import io.zipcoder.domain.Bill; +import io.zipcoder.repository.AccountRepository; +import io.zipcoder.repository.BillRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; + +@Service +public class BillService { + + @Autowired + private BillRepository billRepository; + private AccountRepository accountRepository; + + public BillService() {} + + public BillService(BillRepository billRepository, AccountRepository accountRepository) { + this.billRepository = billRepository; + this.accountRepository = accountRepository; + } + + public ResponseEntity> getAllBillsForAccount(Long accountId) { + Iterable allBillsForAccount = billRepository.findAllByAccount_Id(accountId); + return new ResponseEntity<>(allBillsForAccount, HttpStatus.OK); + } + + public ResponseEntity getBillById(Long billId) { + /* + Account account = accountRepo.findById(accountId).orElse(new Account()); + return new ResponseEntity<>(account, OK); + */ + // need to rework this. +// Bill bill = billRepository.findById(billId); +// return new ResponseEntity<>(bill, HttpStatus.OK); + return null; + } + + public ResponseEntity> getAllBillsForCustomer() { + Iterable allBillsForCustomer = billRepository.findAll(); + return new ResponseEntity<>(allBillsForCustomer, HttpStatus.OK); + } + + public ResponseEntity createBill(Bill bill) { + bill = billRepository.save(bill); + URI newBillUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(bill.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newBillUri); + return new ResponseEntity<>(null, responseHeaders, HttpStatus.CREATED); + } + + public ResponseEntity updateBill(Bill bill) { + Bill bill1 = billRepository.save(bill); + return new ResponseEntity<>(HttpStatus.OK); + } + + public ResponseEntity deleteBill(Long billId) { + billRepository.delete(billId); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/src/main/java/io/zipcoder/service/CustomerService.java b/src/main/java/io/zipcoder/service/CustomerService.java new file mode 100644 index 0000000..0b1b810 --- /dev/null +++ b/src/main/java/io/zipcoder/service/CustomerService.java @@ -0,0 +1,65 @@ +package io.zipcoder.service; + + +import io.zipcoder.domain.Account; +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.AccountRepository; +import io.zipcoder.repository.CustomerRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +import java.net.URI; + +@Service +public class CustomerService { + + private CustomerRepository customerRepository; + private AccountRepository accountRepository; + + public CustomerService(){} + + @Autowired + public CustomerService(CustomerRepository customerRepository, AccountRepository accountRepository){ + this.customerRepository = customerRepository; + this.accountRepository = accountRepository; + } + + public ResponseEntity> getAllCustomers(){ + Iterable accounts = customerRepository.findAll(); + return new ResponseEntity<>(accounts, HttpStatus.OK); + } + + public ResponseEntity getCustomerById(Long id){ + Customer customer = customerRepository.findOne(id); + return new ResponseEntity<>(customer, HttpStatus.OK); + } + + public ResponseEntity getCustomerOfAccount(Long accountId){ + Account account = accountRepository.findOne(accountId); + Customer customer = account.getCustomer(); + return new ResponseEntity<>(customer, HttpStatus.OK); + } + + public ResponseEntity createCustomer(Customer customer){ + Customer customer1 = customerRepository.save(customer); + URI newAccountUri = ServletUriComponentsBuilder + .fromCurrentRequest() + .path("/{id}") + .buildAndExpand(customer.getId()) + .toUri(); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.setLocation(newAccountUri); + return new ResponseEntity<>(customer1, responseHeaders, HttpStatus.CREATED); + } + + public ResponseEntity updateCustomer(Customer customer, Long customerId){ + customer.setId(customerId); + Customer customer1 = customerRepository.save(customer); + return new ResponseEntity<>(customer1, HttpStatus.OK); + } + +} diff --git a/src/main/java/io/zipcoder/service/DepositService.java b/src/main/java/io/zipcoder/service/DepositService.java new file mode 100644 index 0000000..36b8796 --- /dev/null +++ b/src/main/java/io/zipcoder/service/DepositService.java @@ -0,0 +1,48 @@ +package io.zipcoder.service; + +import io.zipcoder.domain.Deposit; +import io.zipcoder.repository.DepositRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + + +@Service +public class DepositService { + + private DepositRepository depositRepository; + + @Autowired + public DepositService(DepositRepository depositRepository) { + this.depositRepository = depositRepository; + + } + + public ResponseEntity> getDepositsByAccount(Long accountId) { + Iterable allDepositsForAccount = depositRepository.findAllByPayee_Id(accountId); + return new ResponseEntity<>(allDepositsForAccount, HttpStatus.OK); + } + + public ResponseEntity getDeposit(Long depositId) { + Deposit deposit = depositRepository.findOne(depositId); + return new ResponseEntity<>(deposit, HttpStatus.OK); + } + + public ResponseEntity createDeposit(Deposit deposit, Long accountId) { + deposit.setPayer_id(accountId); + Deposit deposit1 = depositRepository.save(deposit); + return new ResponseEntity<>(deposit1, HttpStatus.CREATED); + } + + public ResponseEntity updateDeposit(Deposit deposit, Long depositId) { + deposit.setId(depositId); + Deposit deposit1 = depositRepository.save(deposit); + return new ResponseEntity<>(deposit1, HttpStatus.OK); + } + + public ResponseEntity deleteDeposit(Long depositId) { + depositRepository.delete(depositId); + return new ResponseEntity<>(HttpStatus.OK); + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/service/WithdrawalService.java b/src/main/java/io/zipcoder/service/WithdrawalService.java new file mode 100644 index 0000000..e56c364 --- /dev/null +++ b/src/main/java/io/zipcoder/service/WithdrawalService.java @@ -0,0 +1,47 @@ +package io.zipcoder.service; + +import io.zipcoder.domain.Withdrawal; +import io.zipcoder.repository.WithdrawalRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +@Service +public class WithdrawalService { + + private WithdrawalRepository withdrawalRepository; + + @Autowired + public WithdrawalService(WithdrawalRepository withdrawalRepository) { + this.withdrawalRepository = withdrawalRepository; + } + + public ResponseEntity> getWithdrawalsByAccount(Long accountId) { + Iterable allWithdrawalsForAccount = withdrawalRepository.findAllByPayer_Id(accountId); + return new ResponseEntity<>(allWithdrawalsForAccount, HttpStatus.OK); + } + + public ResponseEntity getWithdrawal(Long withdrawalId) { + Withdrawal withdrawal = withdrawalRepository.findOne(withdrawalId); + return new ResponseEntity<>(withdrawal, HttpStatus.OK); + } + + public ResponseEntity createWithdrawal(Withdrawal withdrawal, Long accountId) { + withdrawal.setPayer_id(accountId); + Withdrawal withdrawal1 = withdrawalRepository.save(withdrawal); + return new ResponseEntity<>(withdrawal1, HttpStatus.CREATED); + } + + public ResponseEntity updateWithdrawal(Withdrawal withdrawal, Long withdrawalId) { + withdrawal.setId(withdrawalId); + Withdrawal withdrawal1 = withdrawalRepository.save(withdrawal); + return new ResponseEntity<>(withdrawal1,HttpStatus.OK); + } + + public ResponseEntity deleteWithdrawal(Long withdrawalId) { + withdrawalRepository.delete(withdrawalId); + return new ResponseEntity<>(HttpStatus.OK); + } + +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e69de29..23a6c49 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -0,0 +1,4 @@ +#spring.jpa.hibernate.ddl-auto=create +#spring.datasource.url=jdbc:mysql://localhost:3306/bank_project +#spring.datasource.username=ourgroup +#spring.datasource.password=ThePassword diff --git a/src/test/java/io/zipcoder/ZcwbankApplicationTests.java b/src/test/java/io/zipcoder/ZcwbankApplicationTests.java index 846d527..26aac95 100644 --- a/src/test/java/io/zipcoder/ZcwbankApplicationTests.java +++ b/src/test/java/io/zipcoder/ZcwbankApplicationTests.java @@ -1,5 +1,6 @@ package io.zipcoder; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; diff --git a/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java b/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java new file mode 100644 index 0000000..b0523b5 --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/AccountControllerTest.java @@ -0,0 +1,42 @@ +package io.zipcoder.controllerTest; + +import io.zipcoder.controller.AccountController; + +import io.zipcoder.service.AccountService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.*; +import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.internal.verification.VerificationModeFactory.times; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@RunWith(SpringRunner.class) +@WebMvcTest(AccountController.class) +public class AccountControllerTest { + + @Autowired + private MockMvc mvc; + + @MockBean + private AccountService accountService; + + @Before + public void setup(){ + MockitoAnnotations.initMocks(this); + } + +} diff --git a/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java b/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java new file mode 100644 index 0000000..4708538 --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/CustomerControllerTest.java @@ -0,0 +1,66 @@ +package io.zipcoder.controllerTest; + +import io.zipcoder.controller.CustomerController; + +import io.zipcoder.service.CustomerService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.*; +import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.internal.verification.VerificationModeFactory.times; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@RunWith(SpringRunner.class) +@WebMvcTest(CustomerController.class) +public class CustomerControllerTest { + + @Autowired + private MockMvc mvc; + + @MockBean + private CustomerService customerService; + + @Before + public void setup(){ + + } + + @Test + public void testGetAllCustomers(){ + + } + + @Test + public void testGetCustomerById(){ + + } + + @Test + public void testGetCustomer(){ + + } + + @Test + public void testCreateCustomer(){ + + } + + @Test + public void testUpdateCustomer(){ + + } +} diff --git a/src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java b/src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java new file mode 100644 index 0000000..2896ee2 --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/DepositControllerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.controllerTest; + +public class DepositControllerTest { +} diff --git a/src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java b/src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java new file mode 100644 index 0000000..7d4074b --- /dev/null +++ b/src/test/java/io/zipcoder/controllerTest/WithdrawalControllerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.controllerTest; + +public class WithdrawalControllerTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/AccountTest.java b/src/test/java/io/zipcoder/domainTest/AccountTest.java new file mode 100644 index 0000000..6812bbb --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/AccountTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class AccountTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/AddressTest.java b/src/test/java/io/zipcoder/domainTest/AddressTest.java new file mode 100644 index 0000000..41a7dea --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/AddressTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class AddressTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/BillTest.java b/src/test/java/io/zipcoder/domainTest/BillTest.java new file mode 100644 index 0000000..3964406 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/BillTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class BillTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/CustomerTest.java b/src/test/java/io/zipcoder/domainTest/CustomerTest.java new file mode 100644 index 0000000..b8f7320 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/CustomerTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class CustomerTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/DepositTest.java b/src/test/java/io/zipcoder/domainTest/DepositTest.java new file mode 100644 index 0000000..db9a047 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/DepositTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class DepositTest { +} diff --git a/src/test/java/io/zipcoder/domainTest/WithdrawalTest.java b/src/test/java/io/zipcoder/domainTest/WithdrawalTest.java new file mode 100644 index 0000000..2f52094 --- /dev/null +++ b/src/test/java/io/zipcoder/domainTest/WithdrawalTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.domainTest; + +public class WithdrawalTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java new file mode 100644 index 0000000..f4f2775 --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/AccountRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class AccountRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java new file mode 100644 index 0000000..871a7c7 --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/CustomerRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class CustomerRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java new file mode 100644 index 0000000..2f258dc --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/DepositRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class DepositRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java b/src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java new file mode 100644 index 0000000..4c4a508 --- /dev/null +++ b/src/test/java/io/zipcoder/repositoryTest/WithdrawalRepositoryTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.repositoryTest; + +public class WithdrawalRepositoryTest { +} diff --git a/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java b/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java new file mode 100644 index 0000000..4113fa6 --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/AccountServiceTest.java @@ -0,0 +1,33 @@ +package io.zipcoder.serviceTest; + +import io.zipcoder.repository.AccountRepository; +import io.zipcoder.service.AccountService; +import io.zipcoder.domain.Account; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.mockito.Mockito.*; +import static org.junit.Assert.assertThat; +import static org.hamcrest.CoreMatchers.is; + +public class AccountServiceTest { + @Mock + private AccountRepository mockRepo; + + @InjectMocks + private AccountService mockService; + + @Before + public void setUp() throws Exception{ + MockitoAnnotations.initMocks(this); + } + + @Test + public void testGetAllAccounts(){ + + } +} diff --git a/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java b/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java new file mode 100644 index 0000000..5ffef39 --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/CustomerServiceTest.java @@ -0,0 +1,56 @@ +package io.zipcoder.serviceTest; + + +import io.zipcoder.domain.Customer; +import io.zipcoder.repository.CustomerRepository; +import io.zipcoder.service.CustomerService; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.mockito.Mockito.*; +import static org.junit.Assert.assertThat; +import static org.hamcrest.CoreMatchers.is; + + +public class CustomerServiceTest { + @Mock + private CustomerRepository mockRepo; + + @InjectMocks + private CustomerService mockService; + + @Before + public void setUp() throws Exception{ + MockitoAnnotations.initMocks(this); + } + + @Test + public void testCreateCustomer(){ + + } + + @Test + public void testGetAllCustomers(){ + + } + + @Test + public void testGetCustomerById(){ + + } + + @Test + public void testUpdateCustomer(){ + + } + + @Test + public void testGetCustomerOfAccount(){ + + } + +} diff --git a/src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java b/src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java new file mode 100644 index 0000000..f04969e --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/DepositServiceTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.serviceTest; + +public class DepositServiceTest { +} diff --git a/src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java b/src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java new file mode 100644 index 0000000..4aa46d8 --- /dev/null +++ b/src/test/java/io/zipcoder/serviceTest/WithdrawalServiceTest.java @@ -0,0 +1,4 @@ +package io.zipcoder.serviceTest; + +public class WithdrawalServiceTest { +}