diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/CheckDriverIsEncrypted.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/CheckDriverIsEncrypted.java new file mode 100644 index 0000000000..1204900651 --- /dev/null +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/CheckDriverIsEncrypted.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) "Neo4j" + * Neo4j Sweden AB [http://neo4j.com] + * + * This file is part of Neo4j. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package neo4j.org.testkit.backend.messages.requests; + +import lombok.Getter; +import lombok.Setter; +import neo4j.org.testkit.backend.TestkitState; +import neo4j.org.testkit.backend.holder.DriverHolder; +import neo4j.org.testkit.backend.messages.responses.DriverIsEncrypted; +import neo4j.org.testkit.backend.messages.responses.TestkitResponse; +import reactor.core.publisher.Mono; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; + +@Setter +@Getter +public class CheckDriverIsEncrypted implements TestkitRequest +{ + private CheckDriverIsEncryptedBody data; + + @Override + public TestkitResponse process( TestkitState testkitState ) + { + return createResponse( testkitState ); + } + + @Override + public CompletionStage processAsync( TestkitState testkitState ) + { + return CompletableFuture.completedFuture( createResponse( testkitState ) ); + } + + @Override + public Mono processRx( TestkitState testkitState ) + { + return Mono.just( createResponse( testkitState ) ); + } + + private DriverIsEncrypted createResponse( TestkitState testkitState ) + { + DriverHolder driverHolder = testkitState.getDriverHolder( data.getDriverId() ); + return DriverIsEncrypted.builder() + .data( DriverIsEncrypted.DriverIsEncryptedBody.builder().encrypted( driverHolder.getDriver().isEncrypted() ).build() ) + .build(); + } + + @Setter + @Getter + public static class CheckDriverIsEncryptedBody + { + private String driverId; + } +} diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java index 94e986bb86..0169957247 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java @@ -61,7 +61,8 @@ public class GetFeatures implements TestkitRequest "Temporary:FullSummary", "Temporary:ResultKeys", "Temporary:TransactionClose", - "Optimization:EagerTransactionBegin" + "Optimization:EagerTransactionBegin", + "Feature:API:Driver.IsEncrypted" ) ); private static final Set SYNC_FEATURES = new HashSet<>( Arrays.asList( diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/TestkitRequest.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/TestkitRequest.java index 5399ce1350..a2e09b606c 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/TestkitRequest.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/TestkitRequest.java @@ -41,7 +41,7 @@ @JsonSubTypes.Type( TransactionRollback.class ), @JsonSubTypes.Type( GetFeatures.class ), @JsonSubTypes.Type( GetRoutingTable.class ), @JsonSubTypes.Type( TransactionClose.class ), @JsonSubTypes.Type( ResultList.class ), @JsonSubTypes.Type( GetConnectionPoolMetrics.class ), - @JsonSubTypes.Type( ResultPeek.class ) + @JsonSubTypes.Type( ResultPeek.class ), @JsonSubTypes.Type( CheckDriverIsEncrypted.class ) } ) public interface TestkitRequest { diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/responses/DriverIsEncrypted.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/responses/DriverIsEncrypted.java new file mode 100644 index 0000000000..2f70a897ad --- /dev/null +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/responses/DriverIsEncrypted.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) "Neo4j" + * Neo4j Sweden AB [http://neo4j.com] + * + * This file is part of Neo4j. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package neo4j.org.testkit.backend.messages.responses; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class DriverIsEncrypted implements TestkitResponse +{ + private final DriverIsEncryptedBody data; + + @Override + public String testkitName() + { + return "DriverIsEncrypted"; + } + + @Getter + @Builder + public static class DriverIsEncryptedBody + { + private final boolean encrypted; + } +}