Skip to content

Commit

Permalink
test: test
Browse files Browse the repository at this point in the history
  • Loading branch information
Anton Baliasnikov committed Mar 3, 2023
1 parent 8d22cbe commit f3a40d8
Show file tree
Hide file tree
Showing 9 changed files with 51 additions and 45 deletions.
2 changes: 1 addition & 1 deletion infrastructure/local/.env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MERCURY_MEDIATOR_VERSION=0.2.0
IRIS_SERVICE_VERSION=0.1.0
PRISM_AGENT_VERSION=0.48.1
PRISM_AGENT_VERSION=0.48.2
PRISM_NODE_VERSION=v2.1.0
PORT=80
NETWORK=prism
5 changes: 5 additions & 0 deletions tests/e2e-tests/src/main/kotlin/api_models/ManagedDid.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@ data class ManagedDid(
var longFormDid: String = "",
var status: String = "",
)

object ManagedDidStatuses {
val PUBLISHED = "PUBLISHED"
val UNPUBLISHED = "UNPUBLISHED"
}
2 changes: 0 additions & 2 deletions tests/e2e-tests/src/test/kotlin/common/TestConstants.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,4 @@ object TestConstants {
listOf("https://new.service.com/"),
"LinkedDomains",
)
var PRISM_DID_FOR_UPDATES: String? = null
var PRISM_DID_FOR_DEACTIVATION: String? = null
}
15 changes: 2 additions & 13 deletions tests/e2e-tests/src/test/kotlin/features/did/DeactivateDidSteps.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package features.did
import common.TestConstants
import common.Utils
import common.Utils.lastResponseObject
import io.cucumber.java.en.Given
import io.cucumber.java.en.Then
import io.cucumber.java.en.When
import net.serenitybdd.screenplay.Actor
Expand All @@ -15,20 +14,10 @@ import org.hamcrest.Matchers

class DeactivateDidSteps {

@Given("{actor} have published PRISM DID for deactivation")
fun actorHavePublishedPrismDidForDeactivation(actor: Actor) {
if (TestConstants.PRISM_DID_FOR_DEACTIVATION == null) {
val publishDidSteps = PublishDidSteps()
publishDidSteps.createsUnpublishedDid(actor)
publishDidSteps.hePublishesDidToLedger(actor)
TestConstants.PRISM_DID_FOR_DEACTIVATION = actor.recall("shortFormDid")
}
}

@When("{actor} deactivates PRISM DID")
fun actorIssuesDeactivateDidOperation(actor: Actor) {
actor.attemptsTo(
Post.to("/did-registrar/dids/${TestConstants.PRISM_DID_FOR_DEACTIVATION}/deactivations"),
Post.to("/did-registrar/dids/${actor.recall<String>("shortFormDid")}/deactivations"),
)
actor.should(
ResponseConsequence.seeThatResponse {
Expand All @@ -44,7 +33,7 @@ class DeactivateDidSteps {
Utils.wait(
{
actor.attemptsTo(
Get.resource("/dids/${TestConstants.PRISM_DID_FOR_DEACTIVATION}"),
Get.resource("/dids/${actor.recall<String>("shortFormDid")}"),
)
lastResponseObject("metadata.deactivated", String::class) == "true"
},
Expand Down
28 changes: 28 additions & 0 deletions tests/e2e-tests/src/test/kotlin/features/did/PublishDidSteps.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package features.did

import api_models.*
import common.TestConstants
import common.Utils.lastResponseList
import common.Utils.lastResponseObject
import common.Utils.wait
import io.cucumber.java.en.Given
Expand All @@ -18,6 +19,33 @@ import org.hamcrest.Matchers.*

class PublishDidSteps {

@Given("{actor} have published PRISM DID")
fun actorHavePublishedPrismDid(actor: Actor) {
actor.attemptsTo(
Get.resource("/did-registrar/dids"),
)
actor.should(
ResponseConsequence.seeThatResponse {
it.statusCode(SC_OK)
},
)
val publishedDids = lastResponseList("contents", ManagedDid::class).filter {
it.status == ManagedDidStatuses.PUBLISHED
}
val did = publishedDids.firstOrNull {
actor.attemptsTo(
Get.resource("/dids/${it.did}"),
)
lastResponseObject("metadata.deactivated", String::class) == "false"
}
if (did == null) {
createsUnpublishedDid(actor)
hePublishesDidToLedger(actor)
} else {
actor.remember("shortFormDid", did.did)
}
}

@Given("{actor} creates unpublished DID")
fun createsUnpublishedDid(actor: Actor) {
val publicKeys = listOf(
Expand Down
35 changes: 12 additions & 23 deletions tests/e2e-tests/src/test/kotlin/features/did/UpdateDidSteps.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import api_models.*
import common.TestConstants
import common.Utils.lastResponseList
import common.Utils.wait
import io.cucumber.java.en.Given
import io.cucumber.java.en.Then
import io.cucumber.java.en.When
import net.serenitybdd.screenplay.Actor
Expand All @@ -17,16 +16,6 @@ import org.hamcrest.Matchers.not

class UpdateDidSteps {

@Given("{actor} have published PRISM DID for updates")
fun actorHavePublishedPrismDid(actor: Actor) {
if (TestConstants.PRISM_DID_FOR_UPDATES == null) {
val publishDidSteps = PublishDidSteps()
publishDidSteps.createsUnpublishedDid(actor)
publishDidSteps.hePublishesDidToLedger(actor)
TestConstants.PRISM_DID_FOR_UPDATES = actor.recall("shortFormDid")
}
}

@When("{actor} updates PRISM DID by adding new keys")
fun actorUpdatesPrismDidByAddingNewKeys(actor: Actor) {
val updatePrismDidAction = UpdatePrismDidAction(
Expand Down Expand Up @@ -82,7 +71,7 @@ class UpdateDidSteps {
@When("{actor} submits PRISM DID update operation")
fun actorSubmitsPrismDidUpdateOperation(actor: Actor) {
actor.attemptsTo(
Post.to("/did-registrar/dids/${TestConstants.PRISM_DID_FOR_UPDATES}/updates")
Post.to("/did-registrar/dids/${actor.recall<String>("shortFormDid")}/updates")
.with {
it.body(UpdatePrismDidRequest(listOf(actor.recall("updatePrismDidAction"))))
},
Expand All @@ -101,14 +90,14 @@ class UpdateDidSteps {
wait(
{
actor.attemptsTo(
Get.resource("/dids/${TestConstants.PRISM_DID_FOR_UPDATES}"),
Get.resource("/dids/${actor.recall<String>("shortFormDid")}"),
)
val authUris = lastResponseList("did.authentication.uri", String::class)
val verificationMethods = lastResponseList("did.verificationMethod.id", String::class)
authUris.any {
it == "${TestConstants.PRISM_DID_FOR_UPDATES}#${TestConstants.PRISM_DID_UPDATE_NEW_AUTH_KEY.id}"
it == "${actor.recall<String>("shortFormDid")}#${TestConstants.PRISM_DID_UPDATE_NEW_AUTH_KEY.id}"
} && verificationMethods.any {
it == "${TestConstants.PRISM_DID_FOR_UPDATES}#${TestConstants.PRISM_DID_AUTH_KEY.id}"
it == "${actor.recall<String>("shortFormDid")}#${TestConstants.PRISM_DID_AUTH_KEY.id}"
}
},
"ERROR: DID UPDATE operation did not succeed on the ledger!",
Expand All @@ -121,14 +110,14 @@ class UpdateDidSteps {
wait(
{
actor.attemptsTo(
Get.resource("/dids/${TestConstants.PRISM_DID_FOR_UPDATES}"),
Get.resource("/dids/${actor.recall<String>("shortFormDid")}"),
)
val authUris = lastResponseList("did.authentication.uri", String::class)
val verificationMethods = lastResponseList("did.verificationMethod.id", String::class)
authUris.none {
it == "${TestConstants.PRISM_DID_FOR_UPDATES}#${TestConstants.PRISM_DID_AUTH_KEY.id}"
it == "${actor.recall<String>("shortFormDid")}#${TestConstants.PRISM_DID_AUTH_KEY.id}"
} && verificationMethods.none {
it == "${TestConstants.PRISM_DID_FOR_UPDATES}#${TestConstants.PRISM_DID_AUTH_KEY.id}"
it == "${actor.recall<String>("shortFormDid")}#${TestConstants.PRISM_DID_AUTH_KEY.id}"
}
},
"ERROR: DID UPDATE operation did not succeed on the ledger!",
Expand All @@ -141,11 +130,11 @@ class UpdateDidSteps {
wait(
{
actor.attemptsTo(
Get.resource("/dids/${TestConstants.PRISM_DID_FOR_UPDATES}"),
Get.resource("/dids/${actor.recall<String>("shortFormDid")}"),
)
val serviceIds = lastResponseList("did.service.id", String::class)
serviceIds.any {
it == "${TestConstants.PRISM_DID_FOR_UPDATES}#${TestConstants.PRISM_DID_UPDATE_NEW_SERVICE.id}"
it == "${actor.recall<String>("shortFormDid")}#${TestConstants.PRISM_DID_UPDATE_NEW_SERVICE.id}"
}
},
"ERROR: DID UPDATE operation did not succeed on the ledger!",
Expand All @@ -158,11 +147,11 @@ class UpdateDidSteps {
wait(
{
actor.attemptsTo(
Get.resource("/dids/${TestConstants.PRISM_DID_FOR_UPDATES}"),
Get.resource("/dids/${actor.recall<String>("shortFormDid")}"),
)
val serviceIds = lastResponseList("did.service.id", String::class)
serviceIds.none {
it == "${TestConstants.PRISM_DID_FOR_UPDATES}#${TestConstants.PRISM_DID_UPDATE_NEW_SERVICE.id}"
it == "${actor.recall<String>("shortFormDid")}#${TestConstants.PRISM_DID_UPDATE_NEW_SERVICE.id}"
}
},
"ERROR: DID UPDATE operation did not succeed on the ledger!",
Expand All @@ -175,7 +164,7 @@ class UpdateDidSteps {
wait(
{
actor.attemptsTo(
Get.resource("/dids/${TestConstants.PRISM_DID_FOR_UPDATES}"),
Get.resource("/dids/${actor.recall<String>("shortFormDid")}"),
)
val service = lastResponseList("did.service", Service::class)
service.any { it.serviceEndpoint.contains(TestConstants.PRISM_DID_UPDATE_NEW_SERVICE_URL) }
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e-tests/src/test/kotlin/runners/E2eTestsRunner.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.junit.runner.RunWith

@CucumberOptions(
features = [
"src/test/resources/features"
"src/test/resources/features",
],
glue = ["features"],
snippets = CucumberOptions.SnippetType.CAMELCASE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
Feature: Deactivate DID

Scenario: Deactivate DID
Given Acme have published PRISM DID for deactivation
Given Acme have published PRISM DID
When Acme deactivates PRISM DID
Then He sees that PRISM DID is successfully deactivated
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@
Feature: Update DID

Background:
Given Acme have published PRISM DID for updates
Given Acme have published PRISM DID

@skip @bug @ATL-3705
Scenario: Update PRISM DID by adding new services
When Acme updates PRISM DID with new services
And He submits PRISM DID update operation
Then He sees PRISM DID was successfully updated with new services

@skip @bug @ATL-3705
Scenario: Update PRISM DID by removing services
When Acme updates PRISM DID by removing services
And He submits PRISM DID update operation
Expand All @@ -26,7 +24,6 @@ Scenario: Update PRISM DID by adding new keys
And He submits PRISM DID update operation
Then He sees PRISM DID was successfully updated with new keys

@skip @bug @ATL-3705
Scenario: Update PRISM DID by removing keys
When Acme updates PRISM DID by removing keys
And He submits PRISM DID update operation
Expand Down

0 comments on commit f3a40d8

Please sign in to comment.