Updated scenarios to include official release versions of OS and R3 Corda.

Grouped duplicate scenarios using examples.
Added additional README.md with explanation of feature/scenario types.
Updated scripts to reflect new directory location.
This commit is contained in:
josecoll 2018-04-25 14:13:22 +01:00
parent 685897a7d2
commit 10a0891ab8
21 changed files with 226 additions and 130 deletions

View File

@ -0,0 +1,33 @@
The Behave Cucumber Scenarios defined under these sub-directories exercise R3 Corda and OS Corda distributions to include:
- Open Source master
- R3 Corda master
- Released versions of Open Source from V3.0 onwards
- Released versions of R3 Corda from R3 V3.0 DEV PREVIEW 3 onwards
**Compatibility** scenarios exercise:
- mixed networks: combinations of OS and R3 Corda nodes configured within an R3 Network
- mixed-versioned nodes: combinations of different versions of OS (master, V3.0, V3.1, etc) and R3 Corda (master, V3.0 DP, V3.0 GA) nodes within an R3 Network.
- mixed-versioned corDapps: combinations of nodes running different versions of CorDapps (both valid and invalid upgrade mixes).
- mixed-services: ability to continue transacting upon notaries, oracles, doorman upgrades & changes.
**Functional** scenarios exercise the key behaviours of R3 Corda components and node configurations to include:
- basic cash management functions (issuance, transfer, redemption)
- vault usage of different database providers (H2, sql-server, postgreSQL)
- doorman certificate issuance and usage
- compatibility zone network parameter registration and updates
- network map registration and updates
- notary registration and updates
NOTE:
- the CTS framework uses R3's internal artifactory repositories to setup/configure officially released versions of Corda:
1. https://ci-artifactory.corda.r3cev.com/artifactory/corda-releases
2. https://ci-artifactory.corda.r3cev.com/artifactory/r3-corda-releases
- Scenarios specifying `master` will use the latest code checked into the respective Open Source and Enterprise repositories:
1. https://github.com/corda/corda
2. https://github.com/corda/enterprise/
Further goals of this project are to:
- automatically generate and register Docker images with target Azure Test Environments (eg. Functional/QA, CTS)
- effect execution of scenarios in specified Target Environments
- use Before and After hooks to pre-configure Target Environments to allow batch running of multiple scenarios (eg. a given
feature will specify the environment once for one or many scenarios)

View File

@ -13,7 +13,8 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1-contract | finance-V2-contract |
| corda-master | finance-V1-contract | finance-V2-contract |
| r3-master | finance-V1-contract | finance-V2-contract |
Scenario Outline: Corda node can transact with another Corda node where each has a Cordapp version with same Contract verify but different State definition
Given a node A of version <Corda-Node-Version-X>
@ -26,7 +27,8 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1-state | finance-V2-state |
| corda-master | finance-V1-state | finance-V2-state |
| r3-master | finance-V1-state | finance-V2-state |
Scenario Outline: Corda node can transact with another Corda node where each has a Cordapp version with same Contract verify but different State definition and custom schemas
Given a node A of version <Corda-Node-Version-X>
@ -39,7 +41,8 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1-state-schema | finance-V2-state-schema |
| corda-master | finance-V1-state-schema | finance-V2-state-schema |
| r3-master | finance-V1-state-schema | finance-V2-state-schema |
Scenario Outline: Unhappy path scenarios to be added.
Examples: TODO

View File

@ -13,7 +13,8 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1-flowImpl1 | finance-V2-flowImpl2 |
| corda-master | finance-V1-flowImpl1 | finance-V2-flowImpl2 |
| r3-master | finance-V1-flowImpl1 | finance-V2-flowImpl2 |
Scenario Outline: Corda node can transact with another Corda node where each has a Cordapp version with different, but backwards compatible, Flow versions
Given a node A of version <Corda-Node-Version-X>
@ -25,7 +26,8 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1-flowV1 | finance-V2-flowV2 |
| corda-master | finance-V1-flowV1 | finance-V2-flowV2 |
| r3-master | finance-V1-flowV1 | finance-V2-flowV2 |
Scenario Outline: Corda node fails to transact with another Corda node where each has a Cordapp version with different, incompatible, Flow versions
Given a node A of version <Corda-Node-Version-X>
@ -37,4 +39,5 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1-flowV1-incompat | finance-V2-flowV2-incompat |
| corda-master | finance-V1-flowV1-incompat | finance-V2-flowV2-incompat |
| r3-master | finance-V1-flowV1-incompat | finance-V2-flowV2-incompat |

View File

@ -16,7 +16,7 @@ Feature: Compatibility - CorDapp upgrades and migrations
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | r3corda-3.0-DP3-RC01 | finance-V1 | finance-V2 |
| corda-master | r3-master | finance-V1 | finance-V2 |
Scenario Outline: as above but Node B has not processed Node A payment flow transactions before upgrade
Given a node A of version <Corda-Node-Version-X>
@ -31,7 +31,7 @@ Feature: Compatibility - CorDapp upgrades and migrations
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | r3corda-3.0-DP3-RC01 | finance-V1 | finance-V2 |
| corda-master | r3-master | finance-V1 | finance-V2 |
Scenario Outline: as above but Node B has not processed Node A payment flow transactions before upgrade so we enforce flow draining mode before upgrade can complete
Given a node A of version <Corda-Node-Version-X>
@ -47,4 +47,4 @@ Feature: Compatibility - CorDapp upgrades and migrations
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | r3corda-3.0-DP3-RC01 | finance-V1 | finance-V2 |
| corda-master | r3-master | finance-V1 | finance-V2 |

View File

@ -13,4 +13,8 @@ Feature: Compatibility - CorDapp versions
Examples:
| Corda-Node-Version-X | Cordapp-Version-X | Cordapp-Version-Y |
| corda-3.0 | finance-V1 | finance-V2 |
| corda-master | finance-V1 | finance-V2 |
| r3-master | finance-V1 | finance-V2 |
Scenario Outline: Scenarios that exercise both happy and unhappy paths using Contract Constraints checking (hash, CZ whitelist, signature).
Examples: TODO

View File

@ -15,8 +15,7 @@ Feature: Compatibility - Database providers
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Currency | Database-Type |
# | corda-3.0 | r3-master | GBP | SQL Server |
| corda-3.0 | r3corda-3.0-DP3-RC04 | GBP | SQL Server |
| corda-master | r3-master | GBP | SQL Server |
Scenario Outline: QA: Corda (OS) Node using H2 can transact with R3 Corda (Enterprise) node using Postgres, in an R3 Corda configured network.
Given a node PartyA of version <R3-Corda-Node-Version> with proxy
@ -31,9 +30,7 @@ Feature: Compatibility - Database providers
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Currency | Database-Type |
# | corda-3.0 | r3-master | GBP | postgres |
| corda-3.0 | r3corda-3.0-DP3-RC04 | GBP | postgres |
| corda-master | r3-master | GBP | postgres |
Scenario Outline: QA: 3 Nodes can transact with each other using different database providers: H2, SQL Server, PostgreSQL
Given a node PartyA of version <R3-Corda-Node-Version> with proxy
@ -54,5 +51,7 @@ Feature: Compatibility - Database providers
Examples:
| R3-Corda-Node-Version | Currency | Database-Type-1 | Database-Type-2 | Database-Type-3 |
# | r3-master | GBP | h2 | sql-server | postgres |
| r3corda-3.0-DP3-RC01 | GBP | h2 | sql-server | postgres |
| r3-master | GBP | h2 | sql-server | postgres |
Scenario Outline: Add Doorman and NMS database usage scenarios
Examples: TODO

View File

@ -14,5 +14,8 @@ Feature: Compatibility - Mixed Corda distributions (OS and Enterprise) running d
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Currency |
| corda-3.0 | r3corda-3.0-DP3-RC04 | GBP |
| corda-master | r3-master | GBP |
| corda-master | r3-master | USD |
| corda-master | r3-master | CHF |
| corda-master | r3-master | EUR |

View File

@ -14,8 +14,9 @@ Feature: Compatibility - Doorman certificate issuance
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version | Doorman-Version-X | Doorman-Version-Y |
| corda-3.0 | doorman-3.0-DP3-RC01 | doorman-3.0-master |
| Corda-Node-Version | Doorman-Version-X | Doorman-Version-Y |
| corda-3.0 | doorman-3.0.0-DEV-PREVIEW-3 | doorman-master |
| corda-3.1 | doorman-3.0.0-DEV-PREVIEW-3 | doorman-master |
Scenario Outline: R3 Corda nodes can transact with each other, where they have been issued Certificates by different (R3 Corda) Doorman versions.
Given a node A of version <Corda-Node-Version>
@ -28,8 +29,8 @@ Feature: Compatibility - Doorman certificate issuance
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version | Doorman-Version-X | Doorman-Version-Y |
| r3corda-3.0-DP3-RC01 | doorman-3.0-DP3-RC01 | doorman-3.0-master |
| Corda-Node-Version | Doorman-Version-X | Doorman-Version-Y |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | doorman-3.0.0-DEV-PREVIEW-3 | doorman-master |
Scenario Outline: Mixed (R3 and OS) Corda nodes can transact with each other, where they have been issued Certificates by different (R3 Corda) Doorman versions.
Given a node A of version <Corda-Node-Version-X>
@ -42,5 +43,6 @@ Feature: Compatibility - Doorman certificate issuance
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y | Doorman-Version-X | Doorman-Version-Y |
| r3corda-3.0-DP3-RC01 | corda-3.0 | doorman-3.0-DP3-RC01 | doorman-3.0-master |
| Corda-Node-Version-X | Corda-Node-Version-Y | Doorman-Version-X | Doorman-Version-Y |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | doorman-3.0.0-DEV-PREVIEW-3 | doorman-master |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | doorman-3.0.0-DEV-PREVIEW-3 | doorman-master |

View File

@ -14,8 +14,8 @@ Feature: Compatibility - CZ Network Parameters changes
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version |
| r3corda-3.0 |
| Corda-Node-Version |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |
Scenario Outline: R3 Corda nodes continue transacting when existing Notary changes from non-validating to validating
Given a node A of version <Corda-Node-Version>
@ -27,5 +27,8 @@ Feature: Compatibility - CZ Network Parameters changes
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version |
| r3corda-3.0 |
| Corda-Node-Version |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |
Scenario Outline: Many more scenarios to be added here (eg. CZ whitelist updates, minimumPlatformVersion, maxMessageSize, maxTransactionSize)
Examples: TODO

View File

@ -13,5 +13,7 @@ Feature: Compatibility - NMS node identity (nodeinfo) changes
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version |
| corda-3.0 |
| Corda-Node-Version |
| corda-3.0 |
| corda-3.1 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |

View File

@ -13,7 +13,9 @@ Feature: Compatibility - NMS node identity (nodeinfo) generation
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y |
| corda-3.0 | corda-3.0 |
| corda-3.0 | corda-3.1 |
| corda-master | corda-3.0 |
| corda-master | corda-3.1 |
Scenario Outline: R3 Corda node can transact with another R3 Corda node where node infos are generated by different versions of R3 Corda
Given a node A of version <Corda-Node-Version-X>
@ -24,8 +26,8 @@ Feature: Compatibility - NMS node identity (nodeinfo) generation
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y |
| r3corda-3.0-DP3-RC01 | r3corda-3.0 |
| Corda-Node-Version-X | Corda-Node-Version-Y |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | r3-master |
Scenario Outline: R3 Corda node can transact with another Corda (OS) node where node infos are generated by different distributions Corda
Given a node A of version <Corda-Node-Version-X>
@ -36,5 +38,10 @@ Feature: Compatibility - NMS node identity (nodeinfo) generation
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y |
| r3corda-3.0-DP3-RC01 | corda-3.0 |
| Corda-Node-Version-X | Corda-Node-Version-Y |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-master |
| r3-master | corda-3.0 |
| r3-master | corda-3.1 |
| r3-master | corda-master |

View File

@ -15,5 +15,5 @@ Feature: Compatibility - Node high availability and operational continuity
And node A can transfer 100 GBP to node B
Examples:
| Corda-Node-Version-X |
| r3corda-3.0-DP3-RC01 |
| Corda-Node-Version-X |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |

View File

@ -14,7 +14,9 @@ Feature: Compatibility - Node configuration
Examples:
| Corda-Node-Version-X |
| corda-3.0 |
| corda-3.0 |
| corda-3.1 |
| corda-master |
Scenario Outline: R3 Corda node can transact with another R3 Corda node where node configuration is changed on one of the R3 Corda nodes
Given a node A of version <Corda-Node-Version-X>
@ -26,10 +28,11 @@ Feature: Compatibility - Node configuration
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version-X |
| r3corda-3.0-DP3-RC01 |
| Corda-Node-Version-X |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |
| r3-master |
Scenario Outline: R3 Corda node can transact with another Corda (OS) node where node configuration is changed on both of the R3 Corda nodes
Scenario Outline: R3 Corda node can transact with another Corda (OS) node where node configuration is changed on both OS and R3 Corda nodes
Given a node A of version <Corda-Node-Version-X>
And node A configuration is changed
And node A has the finance app installed
@ -41,4 +44,9 @@ Feature: Compatibility - Node configuration
Examples:
| Corda-Node-Version-X | Corda-Node-Version-Y |
| r3corda-3.0-DP3-RC01 | corda-3.0 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 |
| r3-master | corda-master |
Scenario Outline: Add scenarios where new configuration items are added.
Examples: TODO

View File

@ -15,8 +15,10 @@ Feature: Compatibility - Node databases
Then node B can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A |
| corda-3.0 | r3corda-3.0 | H2 |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A |
| r3-master | corda-master | h2 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | h2 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | h2 |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using azure-sql database
Given a node A of version <Corda-Node-Version>
@ -30,8 +32,10 @@ Feature: Compatibility - Node databases
Then node B can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A | Database-Type-B |
| corda-3.0 | r3corda-3.0 | H2 | azure-sql |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A | Database-Type-B |
| r3-master | corda-master | h2 | azure-sql |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | h2 | azure-sql |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | h2 | azure-sql |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using a sql-server database
Given a node A of version <Corda-Node-Version>
@ -45,8 +49,10 @@ Feature: Compatibility - Node databases
Then node B can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A | Database-Type-B |
| corda-3.0 | r3corda-3.0 | H2 | sql-server |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A | Database-Type-B |
| r3-master | corda-master | h2 | sql-server |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | h2 | sql-server |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | h2 | sql-server |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using an oracle 11g database
Given a node A of version <Corda-Node-Version>
@ -60,8 +66,10 @@ Feature: Compatibility - Node databases
Then node B can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A | Database-Type-B |
| corda-3.0 | r3corda-3.0 | H2 | oracle11g |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A | Database-Type-B |
| r3-master | corda-master | h2 | oracle11g |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | h2 | oracle11g |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | h2 | oracle11g |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using an oracle 12c database
Given a node A of version <Corda-Node-Version>
@ -75,8 +83,10 @@ Feature: Compatibility - Node databases
Then node B can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A | Database-Type-B |
| corda-3.0 | r3corda-3.0 | H2 | oracle12c |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A | Database-Type-B |
| r3-master | corda-master | h2 | oracle12c |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | h2 | oracle12c |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | h2 | oracle12c |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using a postgres database
Given a node A of version <Corda-Node-Version>
@ -90,9 +100,10 @@ Feature: Compatibility - Node databases
Then node B can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A | Database-Type-B |
| corda-3.0 | r3corda-3.0 | H2 | postgres |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A | Database-Type-B |
| r3-master | corda-master | h2 | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | h2 | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | h2 | postgres |
Scenario Outline: Corda network of an (OS) Node using H2 database and R3 Corda nodes using different commercial database providers and versions transacting between each other
Given a node A of version <Corda-Node-Version>
@ -122,5 +133,7 @@ Feature: Compatibility - Node databases
Then node F can transfer 100 tokens to node A
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Database-Type-A | Database-Type-B | Database-Type-C | Database-Type-D | Database-Type-E | Database-Type-F |
| corda-3.0 | r3corda-3.0 | H2 | azure-sql | sql-server | oracle11g | oracle12c | postgres |
| R3-Corda-Node-Version | Corda-Node-Version | Database-Type-A | Database-Type-B | Database-Type-C | Database-Type-D | Database-Type-E | Database-Type-F |
| r3-master | corda-master | H2 | azure-sql | sql-server | oracle11g | oracle12c | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | H2 | azure-sql | sql-server | oracle11g | oracle12c | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | H2 | azure-sql | sql-server | oracle11g | oracle12c | postgres |

View File

@ -7,24 +7,10 @@ Feature: Compatibility - Node versions
When the network is ready
Examples:
| Corda-Node-Version |
| corda-3.0 |
Scenario Outline: Startup a Corda (OS) Node from Artifactory
Given a node PartyA of version <Corda-Node-Version>
When the network is ready
Examples:
| Corda-Node-Version |
| corda-3.0 |
Scenario Outline: Startup an R3 Corda Node from Artifactory
Given a node PartyA of version <Corda-Node-Version>
When the network is ready
Examples:
| Corda-Node-Version |
| r3corda-3.0-DP3-RC01 |
| Corda-Node-Version |
| corda-3.0 |
| corda-3.1 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |
Scenario Outline: Startup a Corda (OS) Node and print its node information
Given a node PartyA of version <Corda-Node-Version>
@ -33,8 +19,10 @@ Feature: Compatibility - Node versions
And user can retrieve node identity information for node A
Examples:
| Corda-Node-Version |
| corda-3.0 |
| Corda-Node-Version |
| corda-3.0 |
| corda-3.1 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |
Scenario Outline: Startup a Corda (OS) Node with several Cordapps deployed.
Given a node PartyA of version <Corda-Node-Version>
@ -45,5 +33,7 @@ Feature: Compatibility - Node versions
And user can retrieve node identity information for node A
Examples:
| Corda-Node-Version |
| corda-3.0 |
| Corda-Node-Version |
| corda-3.0 |
| corda-3.1 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 |

View File

@ -13,8 +13,10 @@ Feature: Compatibility - Notary type change
Then node A can transfer 100 tokens to node B
Examples:
| Corda-Node-Version | Notary-Type-A | Notary-Type-B |
| corda-3.0 | notary-validating | notary-non-validating |
| Corda-Node-Version | Notary-Type-A | Notary-Type-B |
| corda-3.0 | notary-validating | notary-non-validating |
| corda-3.1 | notary-validating | notary-non-validating |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | notary-validating | notary-non-validating |
Scenario Outline: Corda (OS) nodes can continue transacting with each other, using states that have been signed by different notaries (using transaction resolution).
Given a node A of version <Corda-Node-Version> using <Notary-Type-A>
@ -26,8 +28,10 @@ Feature: Compatibility - Notary type change
And node A can transfer 100 <Currency> to node B
Examples:
| Corda-Node-Version | Notary-Type-A | Notary-Type-B |
| corda-3.0 | notary-validating | notary-non-validating |
| Corda-Node-Version | Notary-Type-A | Notary-Type-B |
| corda-3.0 | notary-validating | notary-non-validating |
| corda-3.1 | notary-validating | notary-non-validating |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | notary-validating | notary-non-validating |
Scenario Outline: Unhappy path scenarios to be added.
Examples: TODO

View File

@ -10,5 +10,7 @@ Feature: Compatibility - Notary cluster member changes.
Then node PartyA can run <Cordapp-Name> <NumIterations> <SleepMillis>
Examples:
| Corda-Node-Version | R3-Corda-Node-Version | Cordapp-Name | NumIterations | SleepMillis |
| corda-3.0 | r3-master | notaryhealthcheck | 10 | 200 |
| R3-Corda-Node-Version | Corda-Node-Version | Cordapp-Name | NumIterations | SleepMillis |
| r3-master | corda-master | notaryhealthcheck | 10 | 200 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | notaryhealthcheck | 10 | 200 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | notaryhealthcheck | 10 | 200 |

View File

@ -13,5 +13,8 @@ Feature: Compatibility - Notary version change
And node B can transfer 100 tokens to node A using <Notary-Version-Y>
Examples:
| Corda-Node-Version | Notary-Version-X | Notary-Version-Y |
| corda-3.0 | notary-r3c-3.0-DP2 | notary-r3c-3.0 |
| Corda-Node-Version | Notary-Version-X | Notary-Version-Y |
| corda-3.0 | notary-corda-3.0 | notary-corda-3.1 |
| corda-3.0 | notary-corda-3.0 | notary-R3.CORDA-3.0.0-DEV-PREVIEW-3 |
| corda-3.1 | notary-corda-3.1 | notary-R3.CORDA-3.0.0-DEV-PREVIEW-3 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | notary-R3.CORDA-3.0.0-DEV-PREVIEW-3 | r3-master |

View File

@ -13,10 +13,11 @@ Feature: QA Interoperability
And node PartyA can transfer 100 <Currency> to node PartyB
Examples:
| R3-Corda-Node-Version | Corda-Node-Version | Currency |
# | r3-master | corda-master | GBP |
# | r3-master | corda-3.0 | GBP |
| r3corda-3.0-DP3-RC04 | corda-3.0 | GBP |
| R3-Corda-Node-Version | Corda-Node-Version | Currency |
| r3-master | corda-master | GBP |
| corda-3.0 | corda-3.1 | GBP |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | GBP |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | GBP |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using a sql-server database
Given a node PartyA of version <R3-Corda-Node-Version> with proxy
@ -30,27 +31,17 @@ Feature: QA Interoperability
And node PartyA can transfer 100 <Currency> to node PartyB
Examples:
| R3-Corda-Node-Version | Corda-Node-Version | Currency | Database-Type |
# | r3-master | corda-3.0 | GBP | sql-server |
| r3corda-3.0-DP3-RC04 | corda-3.0 | GBP | sql-server |
| R3-Corda-Node-Version | Corda-Node-Version | Currency | Database-Type |
| r3-master | corda-master | GBP | sql-server |
| corda-3.0 | corda-3.1 | GBP | sql-server |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | GBP | sql-server |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | GBP | sql-server |
| r3-master | corda-master | GBP | postgres |
| corda-3.0 | corda-3.1 | GBP | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | GBP | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | GBP | postgres |
Scenario Outline: Corda (OS) Node using H2 database can transact with R3 Corda node using a postgres database
Given a node PartyA of version <R3-Corda-Node-Version> with proxy
And node PartyA uses database of type <Database-Type>
And node PartyA has the finance app installed
And a node PartyB of version <Corda-Node-Version>
And node PartyB has the finance app installed
And a nonvalidating notary Notary of version <R3-Corda-Node-Version>
When the network is ready
Then node PartyA can issue 1000 <Currency>
And node PartyA can transfer 100 <Currency> to node PartyB
Examples:
| R3-Corda-Node-Version | Corda-Node-Version | Currency | Database-Type |
# | r3-master | corda-3.0 | GBP | postgres |
| r3corda-3.0-DP3-RC04 | corda-3.0 | GBP | postgres |
Scenario Outline: Corda network of an (OS) Node using H2 database and R3 Corda nodes using different commercial database providers and versions transacting between each other
Scenario Outline: R3 Corda network with R3 Corda nodes using different database providers and versions transacting between each other
Given a node PartyA of version <R3-Corda-Node-Version> with proxy
And node PartyA uses database of type <Database-Type-1>
And node PartyA has the finance app installed
@ -68,6 +59,29 @@ Feature: QA Interoperability
And node PartyC can transfer 100 <Currency> to node PartyA
Examples:
| R3-Corda-Node-Version | Currency | Database-Type-1 | Database-Type-2 | Database-Type-3 |
# | r3-master | GBP | h2 | sql-server | postgres |
| r3corda-3.0-DP3-RC04 | GBP | h2 | sql-server | postgres |
| R3-Corda-Node-Version | Currency | Database-Type-1 | Database-Type-2 | Database-Type-3 |
| r3-master | GBP | h2 | sql-server | postgres |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | GBP | h2 | sql-server | postgres |
Scenario Outline: Mixed OS and R3 Corda network using different database providers and versions transacting between each other
Given a node PartyA of version <R3-Corda-Node-Version> with proxy
And node PartyA uses database of type <Database-Type-1>
And node PartyA has the finance app installed
And a node PartyB of version <R3-Corda-Node-Version> with proxy
And node PartyB uses database of type <Database-Type-2>
And node PartyB has the finance app installed
And a node PartyC of version <Corda-Node-Version> with proxy
And node PartyC uses database of type <Database-Type-3>
And node PartyC has the finance app installed
And a nonvalidating notary Notary of version <R3-Corda-Node-Version>
When the network is ready within 4 minutes
Then node PartyA can issue 1000 <Currency>
And node PartyA can transfer 100 <Currency> to node PartyB
And node PartyB can transfer 100 <Currency> to node PartyC
And node PartyC can transfer 100 <Currency> to node PartyA
Examples:
| R3-Corda-Node-Version | Corda-Node-Version | Currency | Database-Type-1 | Database-Type-2 | Database-Type-3 |
| r3-master | corda-master | GBP | sql-server | postgres | h2 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.0 | GBP | sql-server | postgres | h2 |
| R3.CORDA-3.0.0-DEV-PREVIEW-3 | corda-3.1 | GBP | sql-server | postgres | h2 |

View File

@ -1,15 +1,16 @@
#!/bin/bash
#
# Run this script from the experimental/behave directory
# Run this script from your ${R3CORDA_HOME}/experimental/behave directory, where R3CORDA_HOME refers to R3 Corda source code (eg. GitHub master, branch or TAG)
# For example:
# R3CORDA_HOME => git clone https://github.com/corda/enterprise
#
# $ pwd
# ./IdeaProjects/corda-reviews/experimental/behave
# $ src/qa-scenarios/resources/scripts/run-behave-qa.sh
# $ testing/qa/behave/compatibility/resources/scripts/run-interoperability.sh
BUILD_DIR=$PWD
cd $BUILD_DIR
R3CORDA_HOME=$PWD
BEHAVE_DIR=${R3CORDA_HOME}/experimental/behave
cd ${BEHAVE_DIR}
../../gradlew behaveJar
# QA compatibility
java -jar $BUILD_DIR/build/libs/corda-behave.jar -d --glue net.corda.behave.scenarios -path ./src/qa-scenarios/resources/features/qa-interop-testing.feature
# QA interoperability
java -jar ${BEHAVE_DIR}/build/libs/corda-behave.jar -d --glue net.corda.behave.scenarios -path ${R3CORDA_HOME}/testing/qa/behave/compatibility/resources/features/qa-interop-testing.feature

View File

@ -1,15 +1,17 @@
#!/bin/bash
#
# Run this script from the experimental/behave directory
# Run this script from your ${R3CORDA_HOME}/experimental/behave directory, where R3CORDA_HOME refers to R3 Corda source code (eg. GitHub master, branch or TAG)
# For example:
# R3CORDA_HOME => git clone https://github.com/corda/enterprise
#
# $ pwd
# ./IdeaProjects/corda-reviews/experimental/behave
# $ src/qa-scenarios/resources/scripts/run-behave-qa.sh
# $ testing/qa/behave/compatibility/resources/scripts/run-functional.sh
BUILD_DIR=$PWD
cd $BUILD_DIR
R3CORDA_HOME=$PWD
BEHAVE_DIR=${R3CORDA_HOME}/experimental/behave
cd ${BEHAVE_DIR}
../../gradlew behaveJar
# QA compatibility
java -jar $BUILD_DIR/build/libs/corda-behave.jar -d --glue net.corda.behave.scenarios -path ./testing/qa/functional/resources/features/qa-functional-testing.feature
# QA functional
java -jar ${BEHAVE_DIR}/build/libs/corda-behave.jar -d --glue net.corda.behave.scenarios -path ${R3CORDA_HOME}/testing/qa/behave/functional/resources/features/qa-functional-testing.feature