diff options
Diffstat (limited to 'vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/DocumentOperationExecutorMock.java')
-rw-r--r-- | vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/DocumentOperationExecutorMock.java | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/DocumentOperationExecutorMock.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/DocumentOperationExecutorMock.java new file mode 100644 index 00000000000..95c90e1a4ca --- /dev/null +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/DocumentOperationExecutorMock.java @@ -0,0 +1,82 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.document.restapi; + +import com.yahoo.document.DocumentGet; +import com.yahoo.document.DocumentId; +import com.yahoo.document.DocumentOperation; +import com.yahoo.document.DocumentPut; +import com.yahoo.document.DocumentRemove; +import com.yahoo.document.DocumentUpdate; +import com.yahoo.documentapi.DocumentOperationParameters; + +import java.util.concurrent.atomic.AtomicReference; + +/** + * @author jonmv + */ +public class DocumentOperationExecutorMock implements DocumentOperationExecutor { + + final AtomicReference<DocumentOperation> lastOperation = new AtomicReference<>(); + final AtomicReference<DocumentOperationParameters> lastParameters = new AtomicReference<>(); + final AtomicReference<OperationContext> lastOperationContext = new AtomicReference<>(); + final AtomicReference<VisitorOptions> lastOptions = new AtomicReference<>(); + final AtomicReference<VisitOperationsContext> lastVisitContext = new AtomicReference<>(); + + @Override + public void get(DocumentId id, DocumentOperationParameters parameters, OperationContext context) { + setLastOperation(new DocumentGet(id), parameters, context); + } + + @Override + public void put(DocumentPut put, DocumentOperationParameters parameters, OperationContext context) { + setLastOperation(put, parameters, context); + } + + @Override + public void update(DocumentUpdate update, DocumentOperationParameters parameters, OperationContext context) { + setLastOperation(update, parameters, context); + } + + @Override + public void remove(DocumentId id, DocumentOperationParameters parameters, OperationContext context) { + setLastOperation(new DocumentRemove(id), parameters, context); + } + + @Override + public void visit(VisitorOptions options, VisitOperationsContext context) { + lastOptions.set(options); + lastVisitContext.set(context); + } + + @Override + public String routeToCluster(String cluster) { + return "route-to-" + cluster; + } + + public DocumentOperation lastOperation() { + return lastOperation.get(); + } + + public DocumentOperationParameters lastParameters() { + return lastParameters.get(); + } + + public OperationContext lastOperationContext() { + return lastOperationContext.get(); + } + + public VisitorOptions lastOptions() { + return lastOptions.get(); + } + + public VisitOperationsContext lastVisitContext() { + return lastVisitContext.get(); + } + + private void setLastOperation(DocumentOperation operation, DocumentOperationParameters parameters, OperationContext context) { + lastOperation.set(operation); + lastParameters.set(parameters); + lastOperationContext.set(context); + } + +} |