### Question:
MonacoPropertiesFactory { public JavaScriptObject getCompletionItemProvider(final MonacoFEELVariableSuggestions variableSuggestions) { return makeJavaScriptObject("provideCompletionItems", makeJSONObject(getProvideCompletionItemsFunction(variableSuggestions))); }  JavaScriptObject getConstructionOptions(); JavaScriptObject getThemeData(); JSONArray getRules(); JavaScriptObject getCompletionItemProvider(final MonacoFEELVariableSuggestions variableSuggestions); JavaScriptObject getLanguageDefinition(); JSONValue getTokenizer(); JSONArray getRoot(); JSONArray row(final String pattern,
                         final String name); JavaScriptObject getLanguage(); static final String FEEL_LANGUAGE_ID; static final String FEEL_THEME_ID; }### Answer:
@Test public void testGetCompletionItemProvider() { final ProvideCompletionItemsFunction provideCompletionItemsFunction = mock(ProvideCompletionItemsFunction.class); final JSONObject functionObject = mock(JSONObject.class); final JavaScriptObject expectedCompletionItemProvider = mock(JavaScriptObject.class); doReturn(provideCompletionItemsFunction).when(factory).getProvideCompletionItemsFunction(variableSuggestions); doReturn(functionObject).when(factory).makeJSONObject(provideCompletionItemsFunction); doReturn(expectedCompletionItemProvider).when(factory).makeJavaScriptObject("provideCompletionItems", functionObject); final JavaScriptObject actualCompletionItemProvider = factory.getCompletionItemProvider(variableSuggestions); assertEquals(expectedCompletionItemProvider, actualCompletionItemProvider); }