Asset Library 기능 추가
This commit is contained in:
@@ -61,9 +61,9 @@ namespace UVC.Tests.Data
|
||||
{
|
||||
// 테스트에 사용할 DataObject 아이템들을 초기화합니다.
|
||||
// UpdateDifferent 메서드가 Id를 기준으로 동작하므로 Id를 설정합니다.
|
||||
_item1 = new DataObject { { "id", "1" }, { "value", "A" } };
|
||||
_item2 = new DataObject { { "id", "2" }, { "value", "B" } };
|
||||
_item3 = new DataObject { { "id", "3" }, { "value", "C" } };
|
||||
_item1 = new DataObject { { "Id", "1" }, { "value", "A" } };
|
||||
_item2 = new DataObject { { "Id", "2" }, { "value", "B" } };
|
||||
_item3 = new DataObject { { "Id", "3" }, { "value", "C" } };
|
||||
|
||||
// 각 테스트 전에 DataArray를 초기화합니다.
|
||||
_dataArray = new DataArray(new[] { _item1, _item2 });
|
||||
@@ -110,8 +110,8 @@ namespace UVC.Tests.Data
|
||||
{
|
||||
// Arrange
|
||||
// 기존 항목 수정, 새 항목 추가를 포함하는 다른 DataArray 생성
|
||||
var item2Modified = new DataObject { { "id", "2" }, { "value", "B_modified" } };
|
||||
var item4New = new DataObject { { "id", "4" }, { "value", "D" } };
|
||||
var item2Modified = new DataObject { { "Id", "2" }, { "value", "B_modified" } };
|
||||
var item4New = new DataObject { { "Id", "4" }, { "value", "D" } };
|
||||
var otherArray = new DataArray(new[] { item2Modified, item4New });
|
||||
|
||||
// Act
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace UVC.Tests.Data
|
||||
// 각 테스트가 실행되기 전에 DataObject를 초기화합니다.
|
||||
_dataObject = new DataObject
|
||||
{
|
||||
{ "id", 1 },
|
||||
{ "Id", 1 },
|
||||
{ "name", "Test" },
|
||||
{ "value", 100.5f },
|
||||
{ "isActive", true }
|
||||
@@ -94,7 +94,7 @@ namespace UVC.Tests.Data
|
||||
// Arrange
|
||||
var otherDataObject = new DataObject
|
||||
{
|
||||
{ "id", 1 }, // 동일한 값
|
||||
{ "Id", 1 }, // 동일한 값
|
||||
{ "name", "Updated Test" }, // 변경된 값
|
||||
{ "newValue", "new" } // 새로 추가된 값
|
||||
};
|
||||
@@ -180,7 +180,7 @@ namespace UVC.Tests.Data
|
||||
public void GetTypeMethods_ReturnCorrectTypes()
|
||||
{
|
||||
// Assert
|
||||
Assert.AreEqual(1, _dataObject.GetInt("id"));
|
||||
Assert.AreEqual(1, _dataObject.GetInt("Id"));
|
||||
Assert.AreEqual("Test", _dataObject.GetString("name"));
|
||||
Assert.AreEqual(100.5f, _dataObject.GetFloat("value"));
|
||||
Assert.IsTrue(_dataObject.GetBool("isActive"));
|
||||
@@ -192,7 +192,7 @@ namespace UVC.Tests.Data
|
||||
// Arrange
|
||||
var jObject = new JObject
|
||||
{
|
||||
{ "id", 10 },
|
||||
{ "Id", 10 },
|
||||
{ "user", "jobject_user" }
|
||||
};
|
||||
|
||||
@@ -200,7 +200,7 @@ namespace UVC.Tests.Data
|
||||
var dataObject = new DataObject(jObject);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(10, dataObject.GetInt("id"));
|
||||
Assert.AreEqual(10, dataObject.GetInt("Id"));
|
||||
Assert.AreEqual("jobject_user", dataObject.GetString("user"));
|
||||
Assert.AreEqual(0, dataObject.UpdatedCount, "생성자 호출 시에는 변경 추적을 하지 않아야 합니다.");
|
||||
}
|
||||
@@ -209,7 +209,7 @@ namespace UVC.Tests.Data
|
||||
public void IdProperty_ReturnsCorrectId()
|
||||
{
|
||||
// Arrange
|
||||
_dataObject.IdKey = "id";
|
||||
_dataObject.IdKey = "Id";
|
||||
|
||||
// Act & Assert
|
||||
Assert.AreEqual("1", _dataObject.Id);
|
||||
|
||||
@@ -719,9 +719,9 @@ namespace UVC.Tests.Data
|
||||
// 여러 응답을 순차적으로 반환하기 위한 응답 데이터 설정
|
||||
string[] mockResponses = new string[]
|
||||
{
|
||||
@"{""message"": ""Success"", ""data"": {""id"": 1, ""status"": ""pending"", ""timestamp"": ""2025-06-09T10:00:00Z""}}",
|
||||
@"{""message"": ""Success"", ""data"": {""id"": 1, ""status"": ""processing"", ""timestamp"": ""2025-06-09T10:00:10Z""}}",
|
||||
@"{""message"": ""Success"", ""data"": {""id"": 1, ""status"": ""completed"", ""timestamp"": ""2025-06-09T10:00:20Z""}}"
|
||||
@"{""message"": ""Success"", ""data"": {""Id"": 1, ""status"": ""pending"", ""timestamp"": ""2025-06-09T10:00:00Z""}}",
|
||||
@"{""message"": ""Success"", ""data"": {""Id"": 1, ""status"": ""processing"", ""timestamp"": ""2025-06-09T10:00:10Z""}}",
|
||||
@"{""message"": ""Success"", ""data"": {""Id"": 1, ""status"": ""completed"", ""timestamp"": ""2025-06-09T10:00:20Z""}}"
|
||||
};
|
||||
|
||||
// Mock 응답 설정
|
||||
@@ -729,7 +729,7 @@ namespace UVC.Tests.Data
|
||||
|
||||
// DataMask와 DataMapper 설정
|
||||
var dataMask = new DataMask();
|
||||
dataMask["id"] = 0;
|
||||
dataMask["Id"] = 0;
|
||||
dataMask["status"] = "";
|
||||
dataMask["timestamp"] = "";
|
||||
|
||||
@@ -798,12 +798,12 @@ namespace UVC.Tests.Data
|
||||
int repeatInterval = 100;
|
||||
|
||||
// Mock 응답 설정
|
||||
string mockResponse = @"{""message"": ""Success"", ""data"": {""id"": 2, ""status"": ""running"", ""timestamp"": ""2025-06-09T11:00:00Z""}}";
|
||||
string mockResponse = @"{""message"": ""Success"", ""data"": {""Id"": 2, ""status"": ""running"", ""timestamp"": ""2025-06-09T11:00:00Z""}}";
|
||||
MockHttpRequester.SetResponse(testUrl, mockResponse);
|
||||
|
||||
// DataMask와 DataMapper 설정
|
||||
var dataMask = new DataMask();
|
||||
dataMask["id"] = 0;
|
||||
dataMask["Id"] = 0;
|
||||
dataMask["status"] = "";
|
||||
dataMask["timestamp"] = "";
|
||||
|
||||
@@ -864,15 +864,15 @@ namespace UVC.Tests.Data
|
||||
int repeatInterval2 = 150;
|
||||
|
||||
// Mock 응답 설정
|
||||
string mockResponse1 = @"{""message"": ""Success"", ""data"": {""id"": 3, ""name"": ""작업1""}}";
|
||||
string mockResponse2 = @"{""message"": ""Success"", ""data"": {""id"": 4, ""name"": ""작업2""}}";
|
||||
string mockResponse1 = @"{""message"": ""Success"", ""data"": {""Id"": 3, ""name"": ""작업1""}}";
|
||||
string mockResponse2 = @"{""message"": ""Success"", ""data"": {""Id"": 4, ""name"": ""작업2""}}";
|
||||
|
||||
MockHttpRequester.SetResponse(testUrl1, mockResponse1);
|
||||
MockHttpRequester.SetResponse(testUrl2, mockResponse2);
|
||||
|
||||
// DataMask 설정
|
||||
var dataMask = new DataMask();
|
||||
dataMask["id"] = 0;
|
||||
dataMask["Id"] = 0;
|
||||
dataMask["name"] = "";
|
||||
|
||||
var dataMapper = new DataMapper(dataMask);
|
||||
@@ -949,12 +949,12 @@ namespace UVC.Tests.Data
|
||||
int repeatInterval = 100;
|
||||
|
||||
// Mock 응답 설정
|
||||
string mockResponse = @"{""message"": ""Success"", ""data"": {""id"": 5, ""message"": ""자동 중단 테스트""}}";
|
||||
string mockResponse = @"{""message"": ""Success"", ""data"": {""Id"": 5, ""message"": ""자동 중단 테스트""}}";
|
||||
MockHttpRequester.SetResponse(testUrl, mockResponse);
|
||||
|
||||
// DataMask 설정
|
||||
var dataMask = new DataMask();
|
||||
dataMask["id"] = 0;
|
||||
dataMask["Id"] = 0;
|
||||
dataMask["message"] = "";
|
||||
|
||||
var dataMapper = new DataMapper(dataMask);
|
||||
@@ -988,7 +988,7 @@ namespace UVC.Tests.Data
|
||||
var data = receivedData[0];
|
||||
Assert.IsNotNull(data, "데이터가 null입니다");
|
||||
var dataObject = data as DataObject;
|
||||
Assert.AreEqual(5, dataObject?.GetInt("id"), "ID가 올바르지 않습니다");
|
||||
Assert.AreEqual(5, dataObject?.GetInt("Id"), "ID가 올바르지 않습니다");
|
||||
Assert.AreEqual("자동 중단 테스트", dataObject?.GetString("message"), "메시지가 올바르지 않습니다");
|
||||
|
||||
// 자동으로 제거되었는지 확인
|
||||
@@ -1149,10 +1149,10 @@ namespace UVC.Tests.Data
|
||||
bool handlerCalled = false;
|
||||
IDataObject? receivedData = null;
|
||||
string testUrl = "http://test.com/validator-pass";
|
||||
var mockResponse = @"{""message"": ""Success"", ""data"": {""id"": 1, ""status"": ""active""}}";
|
||||
var mockResponse = @"{""message"": ""Success"", ""data"": {""Id"": 1, ""status"": ""active""}}";
|
||||
MockHttpRequester.SetResponse(testUrl, mockResponse);
|
||||
|
||||
var dataMapper = new DataMapper(new DataMask { ["id"] = 0, ["status"] = "" });
|
||||
var dataMapper = new DataMapper(new DataMask { ["Id"] = 0, ["status"] = "" });
|
||||
|
||||
// "status" 필드가 "active"인 경우에만 유효하도록 설정
|
||||
var validator = new DataValidator();
|
||||
@@ -1202,10 +1202,10 @@ namespace UVC.Tests.Data
|
||||
// Arrange
|
||||
bool handlerCalled = false;
|
||||
string testUrl = "http://test.com/validator-fail";
|
||||
var mockResponse = @"{""message"": ""Success"", ""data"": {""id"": 2, ""status"": ""inactive""}}";
|
||||
var mockResponse = @"{""message"": ""Success"", ""data"": {""Id"": 2, ""status"": ""inactive""}}";
|
||||
MockHttpRequester.SetResponse(testUrl, mockResponse);
|
||||
|
||||
var dataMapper = new DataMapper(new DataMask { ["id"] = 0, ["status"] = "" });
|
||||
var dataMapper = new DataMapper(new DataMask { ["Id"] = 0, ["status"] = "" });
|
||||
|
||||
// "status" 필드가 "active"인 경우에만 유효하도록 설정
|
||||
var validator = new DataValidator();
|
||||
@@ -1249,14 +1249,14 @@ namespace UVC.Tests.Data
|
||||
var mockResponse = @"{
|
||||
""message"": ""Success"",
|
||||
""data"": [
|
||||
{""id"": 1, ""value"": 10},
|
||||
{""id"": 2, ""value"": 20},
|
||||
{""id"": 3, ""value"": 5}
|
||||
{""Id"": 1, ""value"": 10},
|
||||
{""Id"": 2, ""value"": 20},
|
||||
{""Id"": 3, ""value"": 5}
|
||||
]
|
||||
}";
|
||||
MockHttpRequester.SetResponse(testUrl, mockResponse);
|
||||
|
||||
var dataMapper = new DataMapper(new DataMask { ["id"] = 0, ["value"] = 0 });
|
||||
var dataMapper = new DataMapper(new DataMask { ["Id"] = 0, ["value"] = 0 });
|
||||
|
||||
// "value"가 15보다 큰 항목만 유효하도록 설정
|
||||
var validator = new DataValidator();
|
||||
|
||||
@@ -586,7 +586,7 @@ namespace UVC.Tests.Data
|
||||
// Arrange
|
||||
var testPipeLine = new TestMqttDataReceiver();
|
||||
var handler = new TestDataHandler();
|
||||
var dataMapper = new DataMapper(new DataMask { ["id"] = 0, ["status"] = "" });
|
||||
var dataMapper = new DataMapper(new DataMask { ["Id"] = 0, ["status"] = "" });
|
||||
|
||||
// "status" 필드가 "active"인 경우에만 유효하도록 설정
|
||||
var validator = new DataValidator();
|
||||
@@ -603,7 +603,7 @@ namespace UVC.Tests.Data
|
||||
|
||||
testPipeLine.Add(pipelineInfo);
|
||||
|
||||
var validMessage = @"{""id"": 1, ""status"": ""active""}";
|
||||
var validMessage = @"{""Id"": 1, ""status"": ""active""}";
|
||||
|
||||
// Act
|
||||
testPipeLine.TestOnTopicMessage("test_topic", validMessage);
|
||||
@@ -625,7 +625,7 @@ namespace UVC.Tests.Data
|
||||
// Arrange
|
||||
var testPipeLine = new TestMqttDataReceiver();
|
||||
var handler = new TestDataHandler();
|
||||
var dataMapper = new DataMapper(new DataMask { ["id"] = 0, ["status"] = "" });
|
||||
var dataMapper = new DataMapper(new DataMask { ["Id"] = 0, ["status"] = "" });
|
||||
|
||||
// "status" 필드가 "active"인 경우에만 유효하도록 설정
|
||||
var validator = new DataValidator();
|
||||
@@ -642,7 +642,7 @@ namespace UVC.Tests.Data
|
||||
|
||||
testPipeLine.Add(pipelineInfo);
|
||||
|
||||
var invalidMessage = @"{""id"": 2, ""status"": ""inactive""}";
|
||||
var invalidMessage = @"{""Id"": 2, ""status"": ""inactive""}";
|
||||
|
||||
// Act
|
||||
testPipeLine.TestOnTopicMessage("test_topic", invalidMessage);
|
||||
@@ -662,7 +662,7 @@ namespace UVC.Tests.Data
|
||||
// Arrange
|
||||
var testPipeLine = new TestMqttDataReceiver();
|
||||
var handler = new TestDataHandler();
|
||||
var dataMapper = new DataMapper(new DataMask { ["id"] = 0, ["value"] = 0 });
|
||||
var dataMapper = new DataMapper(new DataMask { ["Id"] = 0, ["value"] = 0 });
|
||||
|
||||
// "value"가 15보다 큰 항목만 유효하도록 설정
|
||||
var validator = new DataValidator();
|
||||
@@ -680,9 +680,9 @@ namespace UVC.Tests.Data
|
||||
testPipeLine.Add(pipelineInfo);
|
||||
|
||||
var arrayMessage = @"[
|
||||
{""id"": 1, ""value"": 10},
|
||||
{""id"": 2, ""value"": 20},
|
||||
{""id"": 3, ""value"": 5}
|
||||
{""Id"": 1, ""value"": 10},
|
||||
{""Id"": 2, ""value"": 20},
|
||||
{""Id"": 3, ""value"": 5}
|
||||
]";
|
||||
|
||||
// Act
|
||||
|
||||
Reference in New Issue
Block a user