Search in sources :

Example 56 with Party

use of com.quorum.tessera.test.Party in project tessera by ConsenSys.

the class SendIT method sendUnknownPublicKey.

/**
 * Quorum sends transaction with unknown public key
 */
@Test
public void sendUnknownPublicKey() {
    Party sendingParty = partyHelper.getParties().findAny().get();
    byte[] transactionData = utils.createTransactionData();
    final SendRequest sendRequest = new SendRequest();
    sendRequest.setFrom(sendingParty.getPublicKey());
    ExecutionContext executionContext = ExecutionContext.currentContext();
    final String unknownkey = generateValidButUnknownPublicKey(executionContext.getEncryptorType()).encodeToBase64();
    sendRequest.setTo(unknownkey);
    sendRequest.setPayload(transactionData);
    final Response response = sendingParty.getRestClient().target(sendingParty.getQ2TUri()).path(SEND_PATH).request().post(Entity.entity(sendRequest, MediaType.APPLICATION_JSON));
    assertThat(response).isNotNull();
    assertThat(response.getStatus()).isEqualTo(404);
}
Also used : SendResponse(com.quorum.tessera.api.SendResponse) Response(jakarta.ws.rs.core.Response) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) Party(com.quorum.tessera.test.Party) SendRequest(com.quorum.tessera.api.SendRequest) ExecutionContext(suite.ExecutionContext) Test(org.junit.Test)

Example 57 with Party

use of com.quorum.tessera.test.Party in project tessera by ConsenSys.

the class SendIT method missingPayloadFails.

@Test
public void missingPayloadFails() {
    Party sendingParty = partyHelper.getParties().findAny().get();
    Party recipient = partyHelper.getParties().filter(p -> p != sendingParty).findAny().get();
    final String sendRequest = Json.createObjectBuilder().add("from", sendingParty.getPublicKey()).add("to", Json.createArrayBuilder().add(recipient.getPublicKey())).build().toString();
    final Response response = sendingParty.getRestClient().target(sendingParty.getQ2TUri()).path(SEND_PATH).request().post(Entity.entity(sendRequest, MediaType.APPLICATION_JSON));
    // validate result
    assertThat(response).isNotNull();
    assertThat(response.getStatus()).isEqualTo(400);
}
Also used : SendResponse(com.quorum.tessera.api.SendResponse) Response(jakarta.ws.rs.core.Response) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) Party(com.quorum.tessera.test.Party) Test(org.junit.Test)

Example 58 with Party

use of com.quorum.tessera.test.Party in project tessera by ConsenSys.

the class SendRawIT method sendSingleTransactionToMultipleParties.

/**
 * Quorum sends transaction with multiple public recipient keys
 */
@Test
public void sendSingleTransactionToMultipleParties() {
    Party sender = partyHelper.findByAlias("A");
    Party firstRecipient = partyHelper.findByAlias("B");
    Party secondRecipient = partyHelper.findByAlias("D");
    byte[] transactionData = restUtils.createTransactionData();
    final Response response = restUtils.sendRaw(sender, transactionData, firstRecipient, secondRecipient);
    // validate result
    assertThat(response).isNotNull();
    assertThat(response.getStatus()).isEqualTo(200);
    String persistedKey = response.readEntity(String.class);
    assertThat(persistedKey).isNotNull();
    URI location = response.getLocation();
    final Response checkPersistedTxnResponse = client.target(location).request().get();
    assertThat(checkPersistedTxnResponse.getStatus()).isEqualTo(200);
    ReceiveResponse receiveResponse = checkPersistedTxnResponse.readEntity(ReceiveResponse.class);
    assertThat(receiveResponse.getPayload()).isEqualTo(transactionData);
    restUtils.findTransaction(persistedKey, sender, firstRecipient, secondRecipient).forEach(r -> {
        assertThat(r.getStatus()).isEqualTo(200);
    });
    restUtils.findTransaction(persistedKey, partyHelper.findByAlias("C")).forEach(r -> {
        assertThat(r.getStatus()).isEqualTo(404);
    });
}
Also used : Response(jakarta.ws.rs.core.Response) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) Party(com.quorum.tessera.test.Party) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) URI(java.net.URI) Test(org.junit.Test)

Example 59 with Party

use of com.quorum.tessera.test.Party in project tessera by ConsenSys.

the class SendRawIT method sendTransactionWithEmptyRecipients.

@Test
public void sendTransactionWithEmptyRecipients() {
    Party sender = partyHelper.findByAlias("A");
    byte[] txnData = restUtils.createTransactionData();
    final Response response = restUtils.sendRaw(sender, txnData);
    assertThat(response).isNotNull();
    assertThat(response.getStatus()).isEqualTo(200);
    String persistedKey = response.readEntity(String.class);
    assertThat(persistedKey).isNotNull();
    URI location = response.getLocation();
    final Response checkPersistedTxnResponse = client.target(location).request().get();
    assertThat(checkPersistedTxnResponse.getStatus()).isEqualTo(200);
    ReceiveResponse receiveResponse = checkPersistedTxnResponse.readEntity(ReceiveResponse.class);
    assertThat(receiveResponse.getPayload()).isEqualTo(txnData);
}
Also used : Response(jakarta.ws.rs.core.Response) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) Party(com.quorum.tessera.test.Party) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) URI(java.net.URI) Test(org.junit.Test)

Example 60 with Party

use of com.quorum.tessera.test.Party in project tessera by ConsenSys.

the class SendReceiveBesuIT method sendAndReceivePrivacyFor.

@Test
public void sendAndReceivePrivacyFor() throws InterruptedException {
    final Party a = partyHelper.findByAlias("A");
    final Party d = partyHelper.findByAlias("D");
    byte[] transactionData = utils.createTransactionData();
    final SendRequest sendRequest = new SendRequest();
    sendRequest.setPayload(transactionData);
    sendRequest.setTo(d.getPublicKey());
    final Response response = client.target(a.getQ2TUri()).path("/send").request().post(Entity.entity(sendRequest, MediaType.APPLICATION_JSON));
    assertThat(response).isNotNull();
    assertThat(response.getStatus()).isEqualTo(200);
    final SendResponse result = response.readEntity(SendResponse.class);
    final String hash = result.getKey();
    // Hash length = 32 bytes
    assertThat(Base64.getDecoder().decode(hash)).hasSize(32);
    String findOutput = privacyGroupTestUtil.find("A", "A", "D");
    final JsonArray json = Json.createReader(new StringReader(findOutput)).readArray();
    Optional<JsonObject> legacyGroup = json.getValuesAs(JsonObject.class).stream().filter(v -> v.getString("type").equals("LEGACY")).findAny();
    // Legacy privacy group was created
    assertThat(legacyGroup).isPresent();
    final String groupId = legacyGroup.get().getString("privacyGroupId");
    ReceiveRequest receiveRequest = new ReceiveRequest();
    receiveRequest.setKey(hash);
    final Response receiveResponse = client.target(a.getQ2TUri()).path("/receive").request().post(Entity.entity(receiveRequest, MediaType.APPLICATION_JSON));
    // validate result
    assertThat(receiveResponse).isNotNull();
    assertThat(receiveResponse.getStatus()).isEqualTo(200);
    final ReceiveResponse receiveResult = receiveResponse.readEntity(ReceiveResponse.class);
    assertThat(receiveResult.getPayload()).isEqualTo(transactionData);
    assertThat(receiveResult.getSenderKey()).isEqualTo(a.getPublicKey());
    assertThat(receiveResult.getPrivacyGroupId()).isEqualTo(groupId);
    final Response receiveResponseOnB = client.target(d.getQ2TUri()).path("/receive").request().post(Entity.entity(receiveRequest, MediaType.APPLICATION_JSON));
    // validate result
    assertThat(receiveResponseOnB).isNotNull();
    assertThat(receiveResponseOnB.getStatus()).isEqualTo(200);
    final ReceiveResponse receiveResultOnB = receiveResponseOnB.readEntity(ReceiveResponse.class);
    assertThat(receiveResultOnB.getPayload()).isEqualTo(transactionData);
    assertThat(receiveResultOnB.getSenderKey()).isEqualTo(a.getPublicKey());
    assertThat(receiveResultOnB.getPrivacyGroupId()).isEqualTo(groupId);
}
Also used : Client(jakarta.ws.rs.client.Client) SendResponse(com.quorum.tessera.api.SendResponse) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Test(org.junit.Test) PartyHelper(com.quorum.tessera.test.PartyHelper) Json(jakarta.json.Json) Entity(jakarta.ws.rs.client.Entity) ReceiveRequest(com.quorum.tessera.api.ReceiveRequest) Response(jakarta.ws.rs.core.Response) Base64(java.util.Base64) SendRequest(com.quorum.tessera.api.SendRequest) MediaType(jakarta.ws.rs.core.MediaType) StringReader(java.io.StringReader) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) JsonObject(jakarta.json.JsonObject) Optional(java.util.Optional) Party(com.quorum.tessera.test.Party) JsonArray(jakarta.json.JsonArray) ClientBuilder(jakarta.ws.rs.client.ClientBuilder) SendRequest(com.quorum.tessera.api.SendRequest) SendResponse(com.quorum.tessera.api.SendResponse) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) JsonObject(jakarta.json.JsonObject) SendResponse(com.quorum.tessera.api.SendResponse) Response(jakarta.ws.rs.core.Response) ReceiveResponse(com.quorum.tessera.api.ReceiveResponse) JsonArray(jakarta.json.JsonArray) Party(com.quorum.tessera.test.Party) StringReader(java.io.StringReader) ReceiveRequest(com.quorum.tessera.api.ReceiveRequest) Test(org.junit.Test)

Aggregations

Party (com.quorum.tessera.test.Party)63 Response (jakarta.ws.rs.core.Response)60 Test (org.junit.Test)46 SendResponse (com.quorum.tessera.api.SendResponse)45 SendRequest (com.quorum.tessera.api.SendRequest)43 ReceiveResponse (com.quorum.tessera.api.ReceiveResponse)32 URI (java.net.URI)16 RestUtils (com.quorum.tessera.test.rest.RestUtils)11 JsonObject (jakarta.json.JsonObject)7 PartyHelper (com.quorum.tessera.test.PartyHelper)5 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)5 PayloadEncryptResponse (com.quorum.tessera.api.PayloadEncryptResponse)4 Entity (jakarta.ws.rs.client.Entity)4 StringReader (java.io.StringReader)4 ExecutionContext (suite.ExecutionContext)4 ServerConfig (com.quorum.tessera.config.ServerConfig)3 ConfigDescriptor (config.ConfigDescriptor)3 Json (jakarta.json.Json)3 Client (jakarta.ws.rs.client.Client)3 Before (org.junit.Before)3