diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-01-11 22:25:03 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-01-11 22:25:03 +0000 |
commit | 3aa01ec8ce4b509569a4e6c8f64858038b2ca5d4 (patch) | |
tree | 6fbf6080266e5d6774317ba0f453c4a4fb1fc917 /document/src/tests/documenttestcase.cpp | |
parent | 6d5b7bb9cff88d5030a606082b703a2c706e0747 (diff) |
Move the feed reject helper to document module.
Diffstat (limited to 'document/src/tests/documenttestcase.cpp')
-rw-r--r-- | document/src/tests/documenttestcase.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/document/src/tests/documenttestcase.cpp b/document/src/tests/documenttestcase.cpp index e917e33f9ef..64f0029aa56 100644 --- a/document/src/tests/documenttestcase.cpp +++ b/document/src/tests/documenttestcase.cpp @@ -10,10 +10,24 @@ #include <vespa/vespalib/objects/nbostream.h> #include <vespa/vespalib/io/fileutil.h> #include <vespa/vespalib/util/growablebytebuffer.h> +#include <vespa/document/fieldvalue/referencefieldvalue.h> +#include <vespa/document/update/removefieldpathupdate.h> +#include <vespa/document/update/clearvalueupdate.h> +#include <vespa/document/update/removevalueupdate.h> +#include <vespa/document/update/arithmeticvalueupdate.h> +#include <vespa/document/update/addvalueupdate.h> +#include <vespa/document/update/mapvalueupdate.h> +#include <vespa/document/update/assignvalueupdate.h> + +#include <vespa/document/update/tensor_remove_update.h> +#include <vespa/document/update/tensor_modify_update.h> +#include <vespa/document/update/tensor_add_update.h> +#include <vespa/document/update/tensor_partial_update.h> #include <vespa/vespalib/testkit/test_kit.h> #include <vespa/document/util/serializableexceptions.h> #include <vespa/document/util/bytebuffer.h> +#include <vespa/document/util/feed_reject_helper.h> #include <fcntl.h> #include <gtest/gtest.h> #include <gmock/gmock.h> @@ -1251,4 +1265,42 @@ TEST(DocumentTest, testDeserializeMultiple) EXPECT_EQ(correct, sv3); } +TEST(DocumentRejectTest, requireThatFixedSizeFieldValuesAreDetected) { + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::BoolFieldValue())); + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::ByteFieldValue())); + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::ShortFieldValue())); + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::IntFieldValue())); + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::LongFieldValue())); + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::FloatFieldValue())); + EXPECT_TRUE(FeedRejectHelper::isFixedSizeSingleValue(document::DoubleFieldValue())); + + EXPECT_FALSE(FeedRejectHelper::isFixedSizeSingleValue(document::StringFieldValue())); + EXPECT_FALSE(FeedRejectHelper::isFixedSizeSingleValue(document::RawFieldValue())); + EXPECT_FALSE(FeedRejectHelper::isFixedSizeSingleValue(document::PredicateFieldValue())); + EXPECT_FALSE(FeedRejectHelper::isFixedSizeSingleValue(document::ReferenceFieldValue())); + + document::ArrayDataType intArrayType(*document::DataType::INT); + EXPECT_FALSE(FeedRejectHelper::isFixedSizeSingleValue(document::ArrayFieldValue(intArrayType))); +} + +TEST(DocumentRejectTest, requireThatClearRemoveTensorRemoveAndArtithmeticUpdatesIgnoreFeedRejection) { + EXPECT_FALSE(FeedRejectHelper::mustReject(ClearValueUpdate())); + EXPECT_FALSE(FeedRejectHelper::mustReject(RemoveValueUpdate(StringFieldValue()))); + EXPECT_FALSE(FeedRejectHelper::mustReject(ArithmeticValueUpdate(ArithmeticValueUpdate::Add, 5.0))); + EXPECT_FALSE(FeedRejectHelper::mustReject(TensorRemoveUpdate(std::make_unique<TensorFieldValue>()))); +} + +TEST(DocumentRejectTest, requireThatAddMapTensorModifyAndTensorAddUpdatesWillBeRejected) { + EXPECT_TRUE(FeedRejectHelper::mustReject(AddValueUpdate(IntFieldValue()))); + EXPECT_TRUE(FeedRejectHelper::mustReject(MapValueUpdate(IntFieldValue(), ClearValueUpdate()))); + EXPECT_TRUE(FeedRejectHelper::mustReject(TensorModifyUpdate(TensorModifyUpdate::Operation::REPLACE, + std::make_unique<TensorFieldValue>()))); + EXPECT_TRUE(FeedRejectHelper::mustReject(TensorAddUpdate(std::make_unique<TensorFieldValue>()))); +} + +TEST(DocumentRejectTest, requireThatAssignUpdatesWillBeRejectedBasedOnTheirContent) { + EXPECT_FALSE(FeedRejectHelper::mustReject(AssignValueUpdate(IntFieldValue()))); + EXPECT_TRUE(FeedRejectHelper::mustReject(AssignValueUpdate(StringFieldValue()))); +} + } |