From 0c9dd81cfa6b998f01e81858e48537560f3caf71 Mon Sep 17 00:00:00 2001 From: Everett Sochowski Date: Fri, 28 Nov 2014 16:18:18 +0100 Subject: [PATCH] Switch connector implementation to LocalMappedConnector and switch the tests to test against it --- .../scala/code/bankconnectors/Connector.scala | 2 +- .../api/LocalMappedConnectorTestSetup.scala | 72 +++++++++++++++++++ src/test/scala/code/api/ServerSetup.scala | 4 +- 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/test/scala/code/api/LocalMappedConnectorTestSetup.scala diff --git a/src/main/scala/code/bankconnectors/Connector.scala b/src/main/scala/code/bankconnectors/Connector.scala index 7eed5d0b0..cc9fc68e5 100644 --- a/src/main/scala/code/bankconnectors/Connector.scala +++ b/src/main/scala/code/bankconnectors/Connector.scala @@ -15,7 +15,7 @@ object Connector extends SimpleInjector { val connector = new Inject(buildOne _) {} - def buildOne: Connector = LocalConnector + def buildOne: Connector = LocalMappedConnector } diff --git a/src/test/scala/code/api/LocalMappedConnectorTestSetup.scala b/src/test/scala/code/api/LocalMappedConnectorTestSetup.scala new file mode 100644 index 000000000..08835cd9d --- /dev/null +++ b/src/test/scala/code/api/LocalMappedConnectorTestSetup.scala @@ -0,0 +1,72 @@ +package code.api + +import java.util.Date +import bootstrap.liftweb.ToSchemify +import code.model.dataAccess._ +import code.model._ +import net.liftweb.mapper.MetaMapper +import net.liftweb.util.Helpers._ + +import scala.util.Random + +trait LocalMappedConnectorTestSetup extends LocalConnectorTestSetup { + + override protected def createBank(id : String) : Bank = { + MappedBank.create + .fullBankName(randomString(5)) + .shortBankName(randomString(5)) + .permalink(id) + .national_identifier(randomString(5)).saveMe + } + + override protected def createAccount(bankId: BankId, accountId : AccountId, currency : String) : BankAccount = { + MappedBankAccount.create + .bank(bankId.value) + .theAccountId(accountId.value) + .accountCurrency(currency) + .accountBalance(10000) + .holder(randomString(4)) + .accountNumber(randomString(4)) + .accountLabel(randomString(4)).saveMe + } + + override protected def createTransaction(account: BankAccount, startDate: Date, finishDate: Date) = { + //ugly + val mappedBankAccount = account.asInstanceOf[MappedBankAccount] + + val accountBalanceBefore = mappedBankAccount.accountBalance.get + val transactionAmount = Random.nextInt(1000).toLong + val accountBalanceAfter = accountBalanceBefore + transactionAmount + + mappedBankAccount.accountBalance(accountBalanceAfter).save + + MappedTransaction.create + .bank(account.bankId.value) + .account(account.accountId.value) + .transactionType(randomString(5)) + .tStartDate(startDate) + .tFinishDate(finishDate) + .currency(account.currency) + .amount(transactionAmount) + .newAccountBalance(accountBalanceAfter) + .description(randomString(5)) + .counterpartyAccountHolder(randomString(5)) + .counterpartyAccountKind(randomString(5)) + .counterpartyAccountNumber(randomString(5)) + .counterpartyBankName(randomString(5)) + .counterpartyIban(randomString(5)) + .counterpartyNationalId(randomString(5)) + .saveMe + .toTransaction.openOrThrowException("Test setup issue: could not create Transaction") + } + + override protected def wipeTestData() = { + //returns true if the model should not be wiped after each test + def exclusion(m : MetaMapper[_]) = { + m == Nonce || m == Token || m == Consumer || m == OBPUser || m == APIUser + } + + //empty the relational db tables after each test + ToSchemify.models.filterNot(exclusion).foreach(_.bulkDelete_!!()) + } +} diff --git a/src/test/scala/code/api/ServerSetup.scala b/src/test/scala/code/api/ServerSetup.scala index d8ec12767..67b7e8d58 100644 --- a/src/test/scala/code/api/ServerSetup.scala +++ b/src/test/scala/code/api/ServerSetup.scala @@ -33,7 +33,7 @@ Berlin 13359, Germany package code.api.test import code.TestServer -import code.api.LocalConnectorTestSetup +import code.api.{LocalMappedConnectorTestSetup, LocalConnectorTestSetup} import org.scalatest._ import dispatch._ import net.liftweb.json.{Serialization, NoTypeHints} @@ -42,7 +42,7 @@ import net.liftweb.common._ trait ServerSetup extends FeatureSpec with SendServerRequests with BeforeAndAfterEach with GivenWhenThen with BeforeAndAfterAll - with ShouldMatchers with Loggable with LocalConnectorTestSetup { + with ShouldMatchers with Loggable with LocalMappedConnectorTestSetup { var server = TestServer implicit val formats = Serialization.formats(NoTypeHints)