Files
caliverse_server/BrokerApiTest/DocQuery/DynamoDbClientTests.cs
2025-05-01 07:20:41 +09:00

93 lines
2.8 KiB
C#

namespace PlatformTest.DbQuery;
using System.Threading.Tasks;
using Xunit;
using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.Model;
using ServerCore;
using ServerBase;
using ServerCommon;
public class DynamoDbClientTests
{
private ServerConfig? m_config;
private string m_config_path = "../Config/Config.json";
private string m_nlog_config_path = "../Config/nlog.config";
public DynamoDbClientTests()
{
Log.NLogFileName = m_nlog_config_path;
m_config = new ServerConfig();
m_config_path = Path.GetFullPath(m_config_path);
m_config.setConfigFilePath(m_config_path);
m_config.tryLoadConfig().GetAwaiter().GetResult();
}
[Fact]
public async Task connectToDb_ShouldConnectSuccessfully()
{
NullReferenceCheckHelper.throwIfNull(m_config);
var dynamo_db_client = new DynamoDbClient();
// Act
(var error_code, var to_load_table_names) = ServerConfigHelper.getDynamoDbTableNamesWithServiceType(m_config.ServiceType);
if (error_code.isFail())
{
var err_msg = $"Failed to DynamoDbClient.getDynamoDbTableNameWithServiceType() !!!";
Log.getLogger().error(err_msg);
return;
}
var result = dynamo_db_client.connectToDb( to_load_table_names
, m_config.AWS.LocalDynamoDB, m_config.Dynamodb
, m_config.AWS.AccessKey, m_config.AWS.SecretKey, m_config.AWS.Region);
if (result.isFail())
{
Log.getLogger().error($"Failed to connectToDb !!! ");
return;
}
// Assert
await Task.CompletedTask;
Assert.True(result.isSuccess());
}
[Fact]
public async Task CreateDBIfNotExists_ShouldCreateTable()
{
NullReferenceCheckHelper.throwIfNull(m_config);
var dynamo_db_client = new DynamoDbClient();
(var error_code, var to_load_table_names) = ServerConfigHelper.getDynamoDbTableNamesWithServiceType(m_config.ServiceType);
if (error_code.isFail())
{
var err_msg = $"Failed to DynamoDbClient.getDynamoDbTableNameWithServiceType() !!!";
Log.getLogger().error(err_msg);
return;
}
var result = dynamo_db_client.connectToDb(to_load_table_names
, m_config.AWS.LocalDynamoDB, m_config.Dynamodb
, m_config.AWS.AccessKey, m_config.AWS.SecretKey, m_config.AWS.Region);
if (result.isFail())
{
Log.getLogger().error($"Failed to connectToDb !!! ");
return;
}
// Act
var is_success = await dynamo_db_client.createDBIfNotExists(false);
// Assert
Assert.True(is_success);
}
}