93 lines
2.8 KiB
C#
93 lines
2.8 KiB
C#
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using Xunit;
|
|
using Amazon.DynamoDBv2;
|
|
using Amazon.DynamoDBv2.Model;
|
|
|
|
|
|
using ServerCore;
|
|
using ServerBase;
|
|
using ServerCommon;
|
|
|
|
|
|
namespace BrokerTest;
|
|
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);
|
|
}
|
|
}
|