/*
 * Daytona Toolbox API
 * Daytona Toolbox API
 *
 * The version of the OpenAPI document: v0.0.0-dev
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package io.daytona.toolbox.client.api;

import io.daytona.toolbox.client.ApiException;
import io.daytona.toolbox.client.model.CompletionList;
import io.daytona.toolbox.client.model.LspCompletionParams;
import io.daytona.toolbox.client.model.LspDocumentRequest;
import io.daytona.toolbox.client.model.LspServerRequest;
import io.daytona.toolbox.client.model.LspSymbol;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * API tests for LspApi
 */
@Disabled
public class LspApiTest {

    private final LspApi api = new LspApi();

    /**
     * Get code completions
     *
     * Get code completion suggestions from the LSP server
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void completionsTest() throws ApiException {
        LspCompletionParams request = null;
        CompletionList response = api.completions(request);
        // TODO: test validations
    }

    /**
     * Notify document closed
     *
     * Notify the LSP server that a document has been closed
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void didCloseTest() throws ApiException {
        LspDocumentRequest request = null;
        api.didClose(request);
        // TODO: test validations
    }

    /**
     * Notify document opened
     *
     * Notify the LSP server that a document has been opened
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void didOpenTest() throws ApiException {
        LspDocumentRequest request = null;
        api.didOpen(request);
        // TODO: test validations
    }

    /**
     * Get document symbols
     *
     * Get symbols (functions, classes, etc.) from a document
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void documentSymbolsTest() throws ApiException {
        String languageId = null;
        String pathToProject = null;
        String uri = null;
        List<LspSymbol> response = api.documentSymbols(languageId, pathToProject, uri);
        // TODO: test validations
    }

    /**
     * Start LSP server
     *
     * Start a Language Server Protocol server for the specified language
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void startTest() throws ApiException {
        LspServerRequest request = null;
        api.start(request);
        // TODO: test validations
    }

    /**
     * Stop LSP server
     *
     * Stop a Language Server Protocol server
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void stopTest() throws ApiException {
        LspServerRequest request = null;
        api.stop(request);
        // TODO: test validations
    }

    /**
     * Get workspace symbols
     *
     * Search for symbols across the entire workspace
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void workspaceSymbolsTest() throws ApiException {
        String query = null;
        String languageId = null;
        String pathToProject = null;
        List<LspSymbol> response = api.workspaceSymbols(query, languageId, pathToProject);
        // TODO: test validations
    }

}
