// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace document { 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()))); } 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()))); EXPECT_TRUE(FeedRejectHelper::mustReject(TensorAddUpdate(std::make_unique()))); } TEST(DocumentRejectTest, requireThatAssignUpdatesWillBeRejectedBasedOnTheirContent) { EXPECT_FALSE(FeedRejectHelper::mustReject(AssignValueUpdate(IntFieldValue()))); EXPECT_TRUE(FeedRejectHelper::mustReject(AssignValueUpdate(StringFieldValue()))); } }