def METHOD_NAME(udf, udf_wrapper, validator_chain, fp_config, wrapped_udf):
    with patch.object(
        FeatureProcessorConfig, "create", return_value=fp_config
    ) as fp_config_create_method:
        with patch.object(
            UDFWrapperFactory, "get_udf_wrapper", return_value=udf_wrapper
        ) as get_udf_wrapper:
            with patch.object(
                ValidatorFactory,
                "get_validation_chain",
                return_value=validator_chain,
            ) as get_validation_chain:
                decorated_udf = feature_processor(
                    inputs=[tdh.FEATURE_GROUP_DATA_SOURCE],
                    output="",
                )(udf)
                assert decorated_udf == wrapped_udf
                fp_config_create_method.assert_called()
                get_udf_wrapper.assert_called_with(fp_config)
                get_validation_chain.assert_called()
                validator_chain.validate.assert_called_with(fp_config=fp_config, udf=udf)
                udf_wrapper.wrap.assert_called_with(fp_config=fp_config, udf=udf)
                assert decorated_udf.feature_processor_config == fp_config