package io.delphiplatform.api.integration.config;

import com.google.cloud.bigtable.data.v2.BigtableDataClient;
import com.google.cloud.bigtable.data.v2.BigtableDataSettings;

import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;

import java.io.IOException;

import io.delphiplatform.api.integration.util.EnvUtils;

@TestConfiguration
public class TestBigtableConfig {

    private static final String PROJECT_ID = "test-project-id";
    private static final String INSTANCE_ID = "test-instance-id";

    /*
    * client bean to be used by API code instead of real one
    * */
    @Bean
    public BigtableDataClient testDataClient() throws IOException {
        return BigtableDataClient.create(
            BigtableDataSettings
                .newBuilderForEmulator(
                    EnvUtils.getEnvVar(EnvUtils.ENV_VAR_TEST_BT_HOST),
                    EnvUtils.getEnvVarInt(EnvUtils.ENV_VAR_TEST_BT_PORT))
                .setProjectId(PROJECT_ID)
                .setInstanceId(INSTANCE_ID)
                .build()
        );
    }
}
