summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@oath.com>2018-04-23 12:34:55 +0000
committerGeir Storli <geirst@oath.com>2018-04-23 12:45:00 +0000
commit046d9fc7125b19726d48b16ca1b714d6404888d4 (patch)
tree3c88b6c2525c02449df09c402955eb7aa2610a9a
parent5fae97bc7a64119aa07b03cd3ef15a4cefae64bc (diff)
Implement mock of proton::IAttributeManager.
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp65
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/mock_attribute_manager.h81
-rw-r--r--searchlib/src/vespa/searchlib/test/mock_attribute_manager.h1
3 files changed, 85 insertions, 62 deletions
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index 9c8e2d63385..c7790f9c507 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -4,9 +4,9 @@
#include <vespa/document/test/make_bucket_space.h>
#include <vespa/searchcore/proton/attribute/attribute_usage_filter.h>
#include <vespa/searchcore/proton/attribute/i_attribute_manager.h>
+#include <vespa/searchcore/proton/bucketdb/bucket_create_notifier.h>
#include <vespa/searchcore/proton/common/doctypename.h>
#include <vespa/searchcore/proton/common/feedtoken.h>
-#include <vespa/searchcore/proton/bucketdb/bucket_create_notifier.h>
#include <vespa/searchcore/proton/feedoperation/moveoperation.h>
#include <vespa/searchcore/proton/feedoperation/pruneremoveddocumentsoperation.h>
#include <vespa/searchcore/proton/feedoperation/putoperation.h>
@@ -24,6 +24,7 @@
#include <vespa/searchcore/proton/test/buckethandler.h>
#include <vespa/searchcore/proton/test/clusterstatehandler.h>
#include <vespa/searchcore/proton/test/disk_mem_usage_notifier.h>
+#include <vespa/searchcore/proton/test/mock_attribute_manager.h>
#include <vespa/searchcore/proton/test/test.h>
#include <vespa/searchlib/attribute/attributecontext.h>
#include <vespa/searchlib/attribute/attributeguard.h>
@@ -333,67 +334,7 @@ struct MyLongRunningJob : public BlockableMaintenanceJob
}
};
-
-struct MyAttributeManager : public proton::IAttributeManager
-{
- virtual AttributeGuard::UP getAttribute(const string &) const override {
- abort();
- }
- virtual std::unique_ptr<search::attribute::AttributeReadGuard> getAttributeReadGuard(const string &, bool) const override {
- abort();
- }
- virtual void getAttributeList(std::vector<AttributeGuard> &) const override {
- abort();
- }
- virtual search::attribute::IAttributeContext::UP createContext() const override {
- abort();
- }
- virtual IAttributeManager::SP create(const AttributeCollectionSpec &) const override {
- abort();
- }
- virtual std::vector<searchcorespi::IFlushTarget::SP> getFlushTargets() const override {
- abort();
- }
- virtual search::SerialNum getFlushedSerialNum(const vespalib::string &) const override {
- abort();
- }
- virtual search::SerialNum getOldestFlushedSerialNumber() const override {
- abort();
- }
- virtual search::SerialNum getNewestFlushedSerialNumber() const override {
- abort();
- }
- virtual void getAttributeListAll(std::vector<search::AttributeGuard> &) const override {
- abort();
- }
- virtual void pruneRemovedFields(search::SerialNum) override {
- abort();
- }
- virtual const IAttributeFactory::SP &getFactory() const override {
- abort();
- }
- virtual search::ISequencedTaskExecutor &getAttributeFieldWriter() const override {
- abort();
- }
- virtual search::AttributeVector *getWritableAttribute(const vespalib::string &) const override {
- abort();
- }
- virtual const std::vector<search::AttributeVector *> &getWritableAttributes() const override {
- abort();
- }
- virtual void asyncForEachAttribute(std::shared_ptr<IAttributeFunctor>)
- const override {
- }
- virtual ExclusiveAttributeReadAccessor::UP getExclusiveReadAccessor(const vespalib::string &) const override {
- abort();
- }
- virtual void setImportedAttributes(std::unique_ptr<ImportedAttributesRepo>) override {
- abort();
- }
- virtual const ImportedAttributesRepo *getImportedAttributes() const override {
- abort();
- }
-};
+using MyAttributeManager = test::MockAttributeManager;
struct MockLidSpaceCompactionHandler : public ILidSpaceCompactionHandler
{
diff --git a/searchcore/src/vespa/searchcore/proton/test/mock_attribute_manager.h b/searchcore/src/vespa/searchcore/proton/test/mock_attribute_manager.h
new file mode 100644
index 00000000000..9dad0d32b61
--- /dev/null
+++ b/searchcore/src/vespa/searchcore/proton/test/mock_attribute_manager.h
@@ -0,0 +1,81 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#pragma once
+
+#include <vespa/searchlib/test/mock_attribute_manager.h>
+#include <vespa/searchcore/proton/attribute/i_attribute_manager.h>
+#include <vespa/searchcore/proton/attribute/imported_attributes_repo.h>
+
+namespace proton::test {
+
+class MockAttributeManager : public IAttributeManager {
+private:
+ search::attribute::test::MockAttributeManager _mock;
+ std::unique_ptr<ImportedAttributesRepo> _importedAttributes;
+
+public:
+ MockAttributeManager()
+ : _mock(),
+ _importedAttributes()
+ {}
+
+ void addAttribute(const vespalib::string &name, const search::AttributeVector::SP &attr) {
+ _mock.addAttribute(name, attr);
+ }
+
+ virtual search::AttributeGuard::UP getAttribute(const vespalib::string &name) const override {
+ return _mock.getAttribute(name);
+ }
+ virtual std::unique_ptr<search::attribute::AttributeReadGuard> getAttributeReadGuard(const vespalib::string &name, bool stableEnumGuard) const override {
+ return _mock.getAttributeReadGuard(name, stableEnumGuard);
+ }
+ virtual void getAttributeList(std::vector<search::AttributeGuard> &list) const override {
+ _mock.getAttributeList(list);
+ }
+ virtual search::attribute::IAttributeContext::UP createContext() const override {
+ return _mock.createContext();
+ }
+ virtual IAttributeManager::SP create(const AttributeCollectionSpec &) const override {
+ return IAttributeManager::SP();
+ }
+ virtual std::vector<searchcorespi::IFlushTarget::SP> getFlushTargets() const override {
+ return std::vector<searchcorespi::IFlushTarget::SP>();
+ }
+ virtual search::SerialNum getFlushedSerialNum(const vespalib::string &) const override {
+ return search::SerialNum();
+ }
+ virtual search::SerialNum getOldestFlushedSerialNumber() const override {
+ return search::SerialNum();
+ }
+ virtual search::SerialNum getNewestFlushedSerialNumber() const override {
+ return search::SerialNum();
+ }
+ virtual void getAttributeListAll(std::vector<search::AttributeGuard> &) const override {
+ }
+ virtual void pruneRemovedFields(search::SerialNum) override {
+ }
+ virtual const IAttributeFactory::SP &getFactory() const override {
+ abort();
+ }
+ virtual search::ISequencedTaskExecutor &getAttributeFieldWriter() const override {
+ abort();
+ }
+ virtual search::AttributeVector *getWritableAttribute(const vespalib::string &) const override {
+ return nullptr;
+ }
+ virtual const std::vector<search::AttributeVector *> &getWritableAttributes() const override {
+ abort();
+ }
+ virtual void asyncForEachAttribute(std::shared_ptr<IAttributeFunctor>) const override {
+ }
+ virtual ExclusiveAttributeReadAccessor::UP getExclusiveReadAccessor(const vespalib::string &) const override {
+ return ExclusiveAttributeReadAccessor::UP();
+ }
+ virtual void setImportedAttributes(std::unique_ptr<ImportedAttributesRepo> importedAttributes) override {
+ _importedAttributes = std::move(importedAttributes);
+ }
+ virtual const ImportedAttributesRepo *getImportedAttributes() const override {
+ return _importedAttributes.get();
+ }
+};
+
+}
diff --git a/searchlib/src/vespa/searchlib/test/mock_attribute_manager.h b/searchlib/src/vespa/searchlib/test/mock_attribute_manager.h
index fa12089b3cf..1e7f546d864 100644
--- a/searchlib/src/vespa/searchlib/test/mock_attribute_manager.h
+++ b/searchlib/src/vespa/searchlib/test/mock_attribute_manager.h
@@ -6,6 +6,7 @@
#include <vespa/searchlib/attribute/attributevector.h>
#include <vespa/searchlib/attribute/attribute_read_guard.h>
#include <vespa/searchlib/attribute/iattributemanager.h>
+#include <map>
namespace search {
namespace attribute {