diff --git a/src/main/java/org/hyperledger/aries/api/connection/ConnectionRecord.java b/src/main/java/org/hyperledger/aries/api/connection/ConnectionRecord.java
index f293212..1d864b0 100644
--- a/src/main/java/org/hyperledger/aries/api/connection/ConnectionRecord.java
+++ b/src/main/java/org/hyperledger/aries/api/connection/ConnectionRecord.java
@@ -31,7 +31,7 @@ public class ConnectionRecord {
private String invitationMsgId;
private String myDid;
private String requestId;
- private String rfc23State;
+ private Rfc23State rfc23State;
private RoutingState routingState;
private ConnectionState state;
private String theirDid;
diff --git a/src/main/java/org/hyperledger/aries/api/connection/Rfc23State.java b/src/main/java/org/hyperledger/aries/api/connection/Rfc23State.java
new file mode 100644
index 0000000..c65c3db
--- /dev/null
+++ b/src/main/java/org/hyperledger/aries/api/connection/Rfc23State.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2020-2022 - for information on the respective copyright owner
+ * see the NOTICE file and/or the repository at
+ * https://github.com/hyperledger-labs/acapy-java-client
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package org.hyperledger.aries.api.connection;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * Requester states:
+ *
+ *
+ * - start
+ * - invitation-received
+ * - request-sent
+ * - response-received
+ * - abandoned
+ * - completed
+ *
+ *
+ * Responder states:
+ *
+ *
+ * - start
+ * - invitation-sent
+ * - request-received
+ * - response-sent
+ * - abandoned
+ * - completed
+ *
+ */
+public enum Rfc23State {
+
+ @JsonProperty("abandoned")
+ @SerializedName("abandoned")
+ ABANDONED,
+
+ @JsonProperty("completed")
+ @SerializedName("completed")
+ COMPLETED,
+
+ @JsonProperty("invitation-received")
+ @SerializedName("invitation-received")
+ INVITATION_RECEIVED,
+
+ @JsonProperty("invitation-sent")
+ @SerializedName("invitation-sent")
+ INVITATION_SENT,
+
+ @JsonProperty("request-received")
+ @SerializedName("request-received")
+ REQUEST_RECEIVED,
+
+ @JsonProperty("request-sent")
+ @SerializedName("request-sent")
+ REQUEST_SENT,
+
+ @JsonProperty("response-received")
+ @SerializedName("response-received")
+ RESPONSE_RECEIVED,
+
+ @JsonProperty("response-sent")
+ @SerializedName("response-sent")
+ RESPONSE_SENT,
+
+ @JsonProperty("start")
+ @SerializedName("start")
+ START,
+}
diff --git a/src/test/java/org/hyperledger/aries/api/did_exchange/MockedDidExchangeTest.java b/src/test/java/org/hyperledger/aries/api/did_exchange/MockedDidExchangeTest.java
index 64198a5..140e724 100644
--- a/src/test/java/org/hyperledger/aries/api/did_exchange/MockedDidExchangeTest.java
+++ b/src/test/java/org/hyperledger/aries/api/did_exchange/MockedDidExchangeTest.java
@@ -10,12 +10,11 @@
import okhttp3.mockwebserver.MockResponse;
import org.hyperledger.aries.MockedTestBase;
import org.hyperledger.aries.api.connection.ConnectionRecord;
+import org.hyperledger.aries.api.connection.Rfc23State;
import org.hyperledger.aries.util.FileLoader;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import java.util.Optional;
-
class MockedDidExchangeTest extends MockedTestBase {
@Test
@@ -23,12 +22,12 @@ void testCreateRequest() throws Exception {
String json = FileLoader.load("files/didexchange/didexchange-create-request.json");
server.enqueue(new MockResponse().setBody(json));
- final Optional c = ac.didExchangeCreateRequest(DidExchangeCreateRequestFilter
+ final ConnectionRecord c = ac.didExchangeCreateRequest(DidExchangeCreateRequestFilter
.builder()
.theirPublicDid("F6dB7dMVHUQSC64qemnBi7")
- .build());
- Assertions.assertTrue(c.isPresent());
- Assertions.assertEquals("request-sent", c.get().getRfc23State());
- Assertions.assertEquals(ConnectionRecord.ConnectionProtocol.DID_EXCHANGE_V1, c.get().getConnectionProtocol());
+ .build()).
+ orElseThrow();
+ Assertions.assertEquals(Rfc23State.REQUEST_SENT, c.getRfc23State());
+ Assertions.assertEquals(ConnectionRecord.ConnectionProtocol.DID_EXCHANGE_V1, c.getConnectionProtocol());
}
}