/*
 * Daytona
 * Daytona AI platform API Docs
 *
 * The version of the OpenAPI document: 1.0
 * Contact: support@daytona.com
 *
 * 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.api.client.api;

import io.daytona.api.client.ApiException;
import io.daytona.api.client.model.CreateRunner;
import io.daytona.api.client.model.CreateRunnerResponse;
import io.daytona.api.client.model.Runner;
import io.daytona.api.client.model.RunnerFull;
import io.daytona.api.client.model.RunnerHealthcheck;
import io.daytona.api.client.model.RunnerSnapshotDto;
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 RunnersApi
 */
@Disabled
public class RunnersApiTest {

    private final RunnersApi api = new RunnersApi();

    /**
     * Create runner
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void createRunnerTest() throws ApiException {
        CreateRunner createRunner = null;
        String xDaytonaOrganizationID = null;
        CreateRunnerResponse response = api.createRunner(createRunner, xDaytonaOrganizationID);
        // TODO: test validations
    }

    /**
     * Delete runner
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void deleteRunnerTest() throws ApiException {
        String id = null;
        String xDaytonaOrganizationID = null;
        api.deleteRunner(id, xDaytonaOrganizationID);
        // TODO: test validations
    }

    /**
     * Get info for authenticated runner
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getInfoForAuthenticatedRunnerTest() throws ApiException {
        RunnerFull response = api.getInfoForAuthenticatedRunner();
        // TODO: test validations
    }

    /**
     * Get runner by ID
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getRunnerByIdTest() throws ApiException {
        String id = null;
        String xDaytonaOrganizationID = null;
        Runner response = api.getRunnerById(id, xDaytonaOrganizationID);
        // TODO: test validations
    }

    /**
     * Get runner by sandbox ID
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getRunnerBySandboxIdTest() throws ApiException {
        String sandboxId = null;
        RunnerFull response = api.getRunnerBySandboxId(sandboxId);
        // TODO: test validations
    }

    /**
     * Get runner by ID
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getRunnerFullByIdTest() throws ApiException {
        String id = null;
        RunnerFull response = api.getRunnerFullById(id);
        // TODO: test validations
    }

    /**
     * Get runners by snapshot ref
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void getRunnersBySnapshotRefTest() throws ApiException {
        String ref = null;
        List<RunnerSnapshotDto> response = api.getRunnersBySnapshotRef(ref);
        // TODO: test validations
    }

    /**
     * List all runners
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void listRunnersTest() throws ApiException {
        String regionId = null;
        String xDaytonaOrganizationID = null;
        List<Runner> response = api.listRunners(regionId, xDaytonaOrganizationID);
        // TODO: test validations
    }

    /**
     * Runner healthcheck
     *
     * Endpoint for version 2 runners to send healthcheck and metrics. Updates lastChecked timestamp and runner metrics.
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void runnerHealthcheckTest() throws ApiException {
        RunnerHealthcheck runnerHealthcheck = null;
        api.runnerHealthcheck(runnerHealthcheck);
        // TODO: test validations
    }

    /**
     * Update runner draining status
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void updateRunnerDrainingTest() throws ApiException {
        String id = null;
        String xDaytonaOrganizationID = null;
        Runner response = api.updateRunnerDraining(id, xDaytonaOrganizationID);
        // TODO: test validations
    }

    /**
     * Update runner scheduling status
     *
     * @throws ApiException if the Api call fails
     */
    @Test
    public void updateRunnerSchedulingTest() throws ApiException {
        String id = null;
        String xDaytonaOrganizationID = null;
        Runner response = api.updateRunnerScheduling(id, xDaytonaOrganizationID);
        // TODO: test validations
    }

}
