112 lines
4.1 KiB
C#
112 lines
4.1 KiB
C#
namespace PlatformTest.DbQuery;
|
|
|
|
using Amazon;
|
|
using Amazon.DynamoDBv2;
|
|
|
|
using ServerCommon;
|
|
|
|
using ServerCore; using ServerBase;
|
|
|
|
public class EntityBaseTests
|
|
{
|
|
private readonly DynamoDbClient m_dynamo_db_client;
|
|
|
|
public EntityBaseTests()
|
|
{
|
|
m_dynamo_db_client = new DynamoDbClient();
|
|
|
|
(var error_code, var table_names) = ServerConfigHelper.getDynamoDbTableNamesWithServiceType("Dev");
|
|
ConditionValidCheckHelper.throwIfFalseWithCondition(() => ServerErrorCode.Success == error_code
|
|
, () => $"Failed to ServerConfigHelper.getDynamoDbTableNamesWithServiceType() !!! : errorCode:{error_code}");
|
|
|
|
var result = m_dynamo_db_client.connectToDb(table_names, true, "http://localhost:8000", "local", "local");
|
|
if (result.isFail())
|
|
{
|
|
Log.getLogger().error($"Failed to connectToDb !!! ");
|
|
return;
|
|
}
|
|
Log.getLogger().info($"Success connectToDb !!!");
|
|
}
|
|
|
|
internal async Task initDynamoDbClient()
|
|
{
|
|
if (false == await m_dynamo_db_client.createDBIfNotExists(false))
|
|
{
|
|
// err_msg = $"Failed to create DB Table !!! - {toBasicString()}";
|
|
// result.setFail(ServerErrorCode.DynamoDbTableCreateFailed, err_msg);
|
|
Log.getLogger().fatal("Failed to create DB Table !!!");
|
|
// return result;
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public async Task entityInsertActionTest()
|
|
{
|
|
await initDynamoDbClient();
|
|
var user_entity = new UserTestEntity();
|
|
await user_entity.onInit();
|
|
|
|
user_entity.getEntityAction<UserTestInsertAction>();
|
|
var user_id = Guid.NewGuid().ToString();
|
|
var name = $"name_{user_id}";
|
|
}
|
|
|
|
[Fact]
|
|
public async Task EntityFindOneActionTest()
|
|
{
|
|
await initDynamoDbClient();
|
|
var user_entity = new UserTestEntity();
|
|
await user_entity.onInit();
|
|
|
|
user_entity.getEntityAction<UserTestFindOneAction>();
|
|
|
|
|
|
// var example = new DynamoDbExample(m_dynamo_db_client);
|
|
var user_id = Guid.NewGuid().ToString();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task entityBaseTest()
|
|
{
|
|
await initDynamoDbClient();
|
|
var example = new DynamoDbExample(m_dynamo_db_client);
|
|
var user_id = Guid.NewGuid().ToString();
|
|
var name = $"name_{user_id}";
|
|
|
|
//=====================================================================================
|
|
// Insert
|
|
//=====================================================================================
|
|
var (result, user_test_doc) = await example.insertUser(user_id, name);
|
|
Assert.True(result.isSuccess());
|
|
var user_test_attrib = user_test_doc?.getAttrib<UserTestAttrib>();
|
|
Assert.NotNull(user_test_attrib);
|
|
Assert.True(user_test_attrib.UserId == user_id);
|
|
Assert.True(user_test_attrib.Name == name);
|
|
|
|
|
|
var (find_result, user_test_find_doc) = await example.findUserOne(user_id);
|
|
Assert.True(find_result.isSuccess());
|
|
Assert.NotNull(find_result);
|
|
Assert.NotNull(user_test_find_doc);
|
|
Assert.True(user_test_find_doc.getAttrib<UserTestAttrib>()?.UserId == user_id);
|
|
Assert.True(user_test_find_doc.getAttrib<UserTestAttrib>()?.Name == name);
|
|
|
|
var new_name = $"name_{user_id}_2";
|
|
var (update_result, user_test_update_doc) = await example.updateUser(user_id, new_name);
|
|
Assert.True(update_result.isSuccess());
|
|
|
|
var (find_result2, user_test_update_doc2) = await example.findUserOne(user_id);
|
|
Assert.True(find_result2.isSuccess());
|
|
Assert.NotNull(user_test_update_doc2);
|
|
Assert.True(user_test_update_doc2.getAttrib<UserTestAttrib>()?.UserId == user_id);
|
|
Assert.True(user_test_update_doc2.getAttrib<UserTestAttrib>()?.Name == new_name);
|
|
|
|
var delete_result = await example.DeleteUserOne(user_id);
|
|
Assert.True(delete_result.isSuccess());
|
|
|
|
var (find_result3, user_test_delete_doc) = await example.findUserOne(user_id);
|
|
Assert.Null(user_test_delete_doc);
|
|
Assert.True(find_result3.isFail());
|
|
}
|
|
}
|