gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 01/02: libeufin-tutorial test: up to key-letter gene


From: gnunet
Subject: [taler-wallet-core] 01/02: libeufin-tutorial test: up to key-letter generation
Date: Thu, 04 Feb 2021 14:41:10 +0100

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository wallet-core.

commit 39723f6f97dc3ee72bb79da125541e95495f5a61
Author: MS <ms@taler.net>
AuthorDate: Thu Feb 4 14:38:47 2021 +0100

    libeufin-tutorial test: up to key-letter generation
---
 .../src/integrationtests/libeufin.ts               | 175 +++++++++++++++++++++
 .../src/integrationtests/test-libeufin-tutorial.ts |  37 ++++-
 2 files changed, 209 insertions(+), 3 deletions(-)

diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts 
b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
index a7aeb0a7..582c2379 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
@@ -51,6 +51,43 @@ export interface LibeufinCliDetails {
   sandboxUrl: string;
   nexusDatabaseUri: string;
   sandboxDatabaseUri: string;
+  user: LibeufinNexusUser;
+}
+
+export interface LibeufinEbicsSubscriberDetails {
+  hostId: string;
+  partnerId: string;
+  userId: string;
+}
+
+export interface LibeufinEbicsConnectionDetails {
+  subscriberDetails: LibeufinEbicsSubscriberDetails;
+  ebicsUrl: string;
+  connectionName: string;
+}
+
+export interface LibeufinBankAccountDetails {
+  currency: string;
+  iban: string;
+  bic: string;
+  personName: string;
+  accountName: string;
+}
+
+export interface LibeufinNexusUser {
+  username: string;
+  password: string;
+}
+
+export interface LibeufinBackupFileDetails {
+  passphrase: string;
+  outputFile: string;
+  connectionName: string;
+}
+
+export interface LibeufinKeyLetterDetails {
+  outputFile: string;
+  connectionName: string;
 }
 
 export class LibeufinSandboxService implements LibeufinSandboxServiceInterface 
{
@@ -136,6 +173,20 @@ export class LibeufinNexusService {
     const url = `${this.baseUrl}config`;
     await pingProc(this.nexusProc, url, "libeufin-nexus");
   }
+
+  async createNexusSuperuser(
+    details: LibeufinNexusUser,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-nexus",
+      `libeufin-nexus superuser ${details.username} 
--password=${details.password}`,
+      extendEnv({ LIBEUFIN_NEXUS_DB_CONNECTION: 
this.nexusConfig.databaseJdbcUri }),
+    );
+    console.log(stdout); 
+  }
+
 }
 
 export interface CreateEbicsSubscriberRequest {
@@ -207,6 +258,130 @@ export class LibeufinCli {
     );
     console.log(stdout);
   }
+
+  async createEbicsSubscriber(
+    details: LibeufinEbicsSubscriberDetails,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-createebicssubscriber",
+      "libeufin-cli sandbox ebicssubscriber create" +
+        ` --host-id=${details.hostId}` +
+       ` --partner-id=${details.partnerId}` +
+       ` --user-id=${details.userId}`,
+      extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+    );
+    console.log(stdout);
+  }
+
+  async createEbicsBankAccount(
+    sd: LibeufinEbicsSubscriberDetails,
+    bankAccountDetails: LibeufinBankAccountDetails,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-createebicsbankaccount",
+      "libeufin-cli sandbox ebicsbankaccount create" +
+       ` --currency=${bankAccountDetails.currency}` +
+       ` --iban=${bankAccountDetails.iban}` +
+        ` --bic=${bankAccountDetails.bic}` +
+        ` --person-name='${bankAccountDetails.personName}'` +
+        ` --account-name=${bankAccountDetails.accountName}` +
+       ` --ebics-host-id=${sd.hostId}` +
+       ` --ebics-partner-id=${sd.partnerId}` +
+       ` --ebics-user-id=${sd.userId}`,
+      extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+    );
+    console.log(stdout);
+  }
+
+  async generateTransactions(
+    accountName: string,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-generatetransactions",
+      `libeufin-cli sandbox bankaccount generate-transactions ${accountName}`,
+      extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+    );
+    console.log(stdout);
+  }
+
+  async showSandboxTransactions(
+    accountName: string,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-showsandboxtransactions",
+      `libeufin-cli sandbox bankaccount transactions ${accountName}`,
+      extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+    );
+    console.log(stdout);
+  }
+
+  async createEbicsConnection(
+    connectionDetails: LibeufinEbicsConnectionDetails,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-createebicsconnection",
+      `libeufin-cli connections new-ebics-connection` +
+      ` --ebics-url=${connectionDetails.ebicsUrl}` +
+      ` --host-id=${connectionDetails.subscriberDetails.hostId}` +
+      ` --partner-id=${connectionDetails.subscriberDetails.partnerId}` +
+      ` --ebics-user-id=${connectionDetails.subscriberDetails.partnerId}` +
+      ` ${connectionDetails.connectionName}`,
+      extendEnv({
+        LIBEUFIN_NEXUS_URL: this.cliDetails.nexusUrl,
+       LIBEUFIN_NEXUS_USERNAME: this.cliDetails.user.username,
+       LIBEUFIN_NEXUS_PASSWORD: this.cliDetails.user.password,
+      }),
+    );
+    console.log(stdout);
+  }
+
+  async createBackupFile(
+    details: LibeufinBackupFileDetails,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-createbackupfile",
+      `libeufin-cli connections export-backup` +
+      ` --passphrase=${details.passphrase}` +
+      ` --output-file=${details.outputFile}` +
+      ` ${details.connectionName}`,
+      extendEnv({
+        LIBEUFIN_NEXUS_URL: this.cliDetails.nexusUrl,
+       LIBEUFIN_NEXUS_USERNAME: this.cliDetails.user.username,
+       LIBEUFIN_NEXUS_PASSWORD: this.cliDetails.user.password,
+      }),
+    );
+    console.log(stdout);
+  }
+
+  async createKeyLetter(
+    details: LibeufinKeyLetterDetails,
+  ): Promise<void> {
+
+    const stdout = await sh(
+      this.globalTestState,
+      "libeufin-cli-createkeyletter",
+      `libeufin-cli connections get-key-letter` +
+      ` ${details.connectionName} ${details.outputFile}`,
+      extendEnv({
+        LIBEUFIN_NEXUS_URL: this.cliDetails.nexusUrl,
+       LIBEUFIN_NEXUS_USERNAME: this.cliDetails.user.username,
+       LIBEUFIN_NEXUS_PASSWORD: this.cliDetails.user.password,
+      }),
+    );
+    console.log(stdout);
+  }
 }
 
 export namespace LibeufinSandboxApi {
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
index 58cee512..6c84fd99 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-tutorial.ts
@@ -47,16 +47,47 @@ export async function runLibeufinTutorialTest(t: 
GlobalTestState) {
     databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`,
   });
 
-  await libeufinNexus.start();
-  await libeufinNexus.pingUntilAvailable();
-
+  const nexusUser = {username: "foo", password: "secret"};
   const libeufinCli = new LibeufinCli(t, {
     sandboxUrl: libeufinSandbox.baseUrl,
     nexusUrl: libeufinNexus.baseUrl,
     sandboxDatabaseUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`,
     nexusDatabaseUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`,
+    user: nexusUser,
   });
 
+  const ebicsDetails = {
+    hostId: "testhost", partnerId: "partner01", userId: "user01"
+  }
+  const bankAccountDetails = {
+    currency: "EUR", iban: "DE18500105172929531888", bic: "INGDDEFFXXX",
+    personName: "Jane Normal", accountName: "testacct01"
+  }
+
+
   await libeufinCli.checkSandbox();
   await libeufinCli.createEbicsHost("testhost");
+  await libeufinCli.createEbicsSubscriber(ebicsDetails);
+  await libeufinCli.createEbicsBankAccount(ebicsDetails, bankAccountDetails);
+  await libeufinCli.generateTransactions(bankAccountDetails.accountName);
+
+  await libeufinNexus.start();
+  await libeufinNexus.pingUntilAvailable();
+
+  await libeufinNexus.createNexusSuperuser(nexusUser);
+  const connectionDetails = {
+    subscriberDetails: ebicsDetails,
+    ebicsUrl: `${libeufinSandbox.baseUrl}ebicsweb`, // FIXME: need appropriate 
URL concatenation
+    connectionName: "my-ebics-conn",
+  }
+  await libeufinCli.createEbicsConnection(connectionDetails);
+  await libeufinCli.createBackupFile({
+    passphrase: "secret",
+    outputFile: `${t.testDir}/connection-backup.json`,
+    connectionName: connectionDetails.connectionName,
+  })
+  await libeufinCli.createKeyLetter({
+    outputFile: `${t.testDir}/letter.pdf`,
+    connectionName: connectionDetails.connectionName,
+  });
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]