/*
 * 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.GitAddRequest;
import io.daytona.toolbox.client.model.GitBranchRequest;
import io.daytona.toolbox.client.model.GitCheckoutRequest;
import io.daytona.toolbox.client.model.GitCloneRequest;
import io.daytona.toolbox.client.model.GitCommitInfo;
import io.daytona.toolbox.client.model.GitCommitRequest;
import io.daytona.toolbox.client.model.GitCommitResponse;
import io.daytona.toolbox.client.model.GitDeleteBranchRequest;
import io.daytona.toolbox.client.model.GitRepoRequest;
import io.daytona.toolbox.client.model.GitStatus;
import io.daytona.toolbox.client.model.ListBranchResponse;
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 GitApi
 */
@Disabled
public class GitApiTest {

    private final GitApi api = new GitApi();

    /**
     * Add files to Git staging
     *
     * Add files to the Git staging area
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void addFilesTest() throws ApiException {
        GitAddRequest request = null;
        api.addFiles(request);
        // TODO: test validations
    }

    /**
     * Checkout branch or commit
     *
     * Switch to a different branch or commit in the Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void checkoutBranchTest() throws ApiException {
        GitCheckoutRequest request = null;
        api.checkoutBranch(request);
        // TODO: test validations
    }

    /**
     * Clone a Git repository
     *
     * Clone a Git repository to the specified path
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void cloneRepositoryTest() throws ApiException {
        GitCloneRequest request = null;
        api.cloneRepository(request);
        // TODO: test validations
    }

    /**
     * Commit changes
     *
     * Commit staged changes to the Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void commitChangesTest() throws ApiException {
        GitCommitRequest request = null;
        GitCommitResponse response = api.commitChanges(request);
        // TODO: test validations
    }

    /**
     * Create a new branch
     *
     * Create a new branch in the Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void createBranchTest() throws ApiException {
        GitBranchRequest request = null;
        api.createBranch(request);
        // TODO: test validations
    }

    /**
     * Delete a branch
     *
     * Delete a branch from the Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void deleteBranchTest() throws ApiException {
        GitDeleteBranchRequest request = null;
        api.deleteBranch(request);
        // TODO: test validations
    }

    /**
     * Get commit history
     *
     * Get the commit history of the Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getCommitHistoryTest() throws ApiException {
        String path = null;
        List<GitCommitInfo> response = api.getCommitHistory(path);
        // TODO: test validations
    }

    /**
     * Get Git status
     *
     * Get the Git status of the repository at the specified path
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getStatusTest() throws ApiException {
        String path = null;
        GitStatus response = api.getStatus(path);
        // TODO: test validations
    }

    /**
     * List branches
     *
     * Get a list of all branches in the Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void listBranchesTest() throws ApiException {
        String path = null;
        ListBranchResponse response = api.listBranches(path);
        // TODO: test validations
    }

    /**
     * Pull changes from remote
     *
     * Pull changes from the remote Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void pullChangesTest() throws ApiException {
        GitRepoRequest request = null;
        api.pullChanges(request);
        // TODO: test validations
    }

    /**
     * Push changes to remote
     *
     * Push local changes to the remote Git repository
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void pushChangesTest() throws ApiException {
        GitRepoRequest request = null;
        api.pushChanges(request);
        // TODO: test validations
    }

}
