public void SetStorageConfigsTest() { ServerSyncMessage m; List <DtStorageConfig> storageConfigs; // 正常系 { m = new ServerSyncMessage(); storageConfigs = new List <DtStorageConfig>(); DtStorageConfig config = CreateStorageConfig("TestA", "UrlA", "SasA"); storageConfigs.Add(config); config = CreateStorageConfig("TestB", "UrlB", "SasB"); storageConfigs.Add(config); bool result = m.SetStorageConfigs(storageConfigs); string message = ServerSyncMessage.CreateJsonString(m); Assert.AreEqual(2, m.Storage.Count); Assert.AreEqual(true, result); Assert.IsNotNull(m.Script); Assert.IsNotNull(m.Storage); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // nullを設定したケース { m = new ServerSyncMessage(); storageConfigs = new List <DtStorageConfig>(); bool result = m.SetStorageConfigs(null); string message = ServerSyncMessage.CreateJsonString(m); Assert.AreEqual(false, result); Assert.IsNotNull(m.Script); Assert.IsNotNull(m.Storage); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 空のリストを設定したケース { m = new ServerSyncMessage(); storageConfigs = new List <DtStorageConfig>(); bool result = m.SetStorageConfigs(storageConfigs); string message = ServerSyncMessage.CreateJsonString(m); Assert.AreEqual(true, result); Assert.IsNotNull(m.Script); Assert.IsNotNull(m.Storage); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } }
/// <summary> /// DT_STORAGE_CONFIGテーブルから全レコードを取得する /// </summary> /// <returns>ストレージ設定データリスト</returns> /// <remarks> /// テーブルからデータを取得できなかった場合にはnuilを返す /// </remarks> public List <DtStorageConfig> ReadDtStorageConfigs() { List <DtStorageConfig> models = null; try { _logger.Enter("ReadDtStorageConfigs"); IQueryable <DBAccessor.Models.DtStorageConfig> entities = null; _dbPolly.Execute(() => { using (DBAccessor.Models.RmsDbContext db = new DBAccessor.Models.RmsDbContext(_appSettings)) { // 全件取得 entities = db.DtStorageConfig.Select(x => x); } }); if (entities != null && entities.Count() > 0) { models = new List <DtStorageConfig>(); foreach (DBAccessor.Models.DtStorageConfig config in entities) { DtStorageConfig model = config.ToModel(); models.Add(model); } } return(models); } catch (ValidationException e) { throw new RmsParameterException(e.ValidationResult.ErrorMessage, e); } catch (Exception e) { throw new RmsException("DT_STORAGE_CONFIGテーブルのSelectに失敗しました。", e); } finally { _logger.LeaveJson("{0}", models); } }
public void EqualsTest() { const int DataSize = 3; const string StorageName = "StorageName{0}"; const string Url = "Url{0}"; const string Sas = "Sas{0}"; const string ScriptName = "ScriptName{0}"; const string FileName = "FileName{0}"; const int Version = 1; const string Location = "Location{0}"; ServerSyncMessage m1 = new ServerSyncMessage(); ServerSyncMessage m2 = new ServerSyncMessage(); List <DtStorageConfig> storageConfigs; List <DtScriptConfig> scriptConfigs; // 2つのメッセージの内容が一致するケース { storageConfigs = new List <DtStorageConfig>(); scriptConfigs = new List <DtScriptConfig>(); for (int i = 1; i <= DataSize; i++) { DtStorageConfig config = CreateStorageConfig( string.Format(StorageName, i), string.Format(Url, i), string.Format(Sas, i)); storageConfigs.Add(config); } for (int i = 1; i <= DataSize; i++) { DtScriptConfig config = CreateScriptConfig( string.Format(ScriptName, i), string.Format(FileName, i), Version, string.Format(Location, i)); scriptConfigs.Add(config); } m1.SetScriptConfigs(scriptConfigs); m1.SetStorageConfigs(storageConfigs); m2.SetScriptConfigs(scriptConfigs); m2.SetStorageConfigs(storageConfigs); bool result = ServerSyncMessage.Equals(m1, m2); string message = ServerSyncMessage.CreateJsonString(m1); Assert.AreEqual(true, result); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 2つのメッセージの内容が一致するケース // リストに格納された順序が異なっているケース { storageConfigs = new List <DtStorageConfig>(); scriptConfigs = new List <DtScriptConfig>(); for (int i = DataSize; i > 0; i--) { DtStorageConfig config = CreateStorageConfig( string.Format(StorageName, i), string.Format(Url, i), string.Format(Sas, i)); storageConfigs.Add(config); } for (int i = DataSize; i > 0; i--) { DtScriptConfig config = CreateScriptConfig( string.Format(ScriptName, i), string.Format(FileName, i), Version, string.Format(Location, i)); scriptConfigs.Add(config); } m2.SetScriptConfigs(scriptConfigs); m2.SetStorageConfigs(storageConfigs); bool result = ServerSyncMessage.Equals(m1, m2); string message = ServerSyncMessage.CreateJsonString(m2); Assert.AreEqual(true, result); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 2つのメッセージの内容が一致しないケース // 2つのメッセージの要素数が一致しないケース { storageConfigs = new List <DtStorageConfig>(); scriptConfigs = new List <DtScriptConfig>(); for (int i = 1; i <= DataSize + 1; i++) { DtStorageConfig config = CreateStorageConfig( string.Format(StorageName, i), string.Format(Url, i), string.Format(Sas, i)); storageConfigs.Add(config); } for (int i = 1; i <= DataSize + 1; i++) { DtScriptConfig config = CreateScriptConfig( string.Format(ScriptName, i), string.Format(FileName, i), Version, string.Format(Location, i)); scriptConfigs.Add(config); } m2.SetScriptConfigs(scriptConfigs); m2.SetStorageConfigs(storageConfigs); bool result = ServerSyncMessage.Equals(m1, m2); string message = ServerSyncMessage.CreateJsonString(m2); Assert.AreEqual(false, result); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 2つのメッセージの内容が一致しないケース // 2つのメッセージの要素数は一致するが、Nameが一部一致しないケース { storageConfigs = new List <DtStorageConfig>(); scriptConfigs = new List <DtScriptConfig>(); for (int i = 1; i <= DataSize; i++) { DtStorageConfig config; if (i == 1) { config = CreateStorageConfig( string.Format("NAME{0}", i), string.Format(Url, i), string.Format(Sas, i)); } else { config = CreateStorageConfig( string.Format(StorageName, i), string.Format(Url, i), string.Format(Sas, i)); } storageConfigs.Add(config); } for (int i = 1; i <= DataSize; i++) { DtScriptConfig config; if (i == 1) { config = CreateScriptConfig( string.Format("NAME{0}", i), string.Format(FileName, i), Version, string.Format(Location, i)); } else { config = CreateScriptConfig( string.Format(ScriptName, i), string.Format(FileName, i), Version, string.Format(Location, i)); } scriptConfigs.Add(config); } m2.SetScriptConfigs(scriptConfigs); m2.SetStorageConfigs(storageConfigs); bool result = ServerSyncMessage.Equals(m1, m2); string message = ServerSyncMessage.CreateJsonString(m2); Assert.AreEqual(false, result); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 2つのメッセージの内容が一致しないケース // 2つのメッセージの要素数とNameは一致するが、内容(文字列等)が一致しないケース { storageConfigs = new List <DtStorageConfig>(); scriptConfigs = new List <DtScriptConfig>(); for (int i = 1; i <= DataSize; i++) { DtStorageConfig config = CreateStorageConfig( string.Format(StorageName, i), string.Format("URL{0}", i), string.Format("SAS{0}", i)); storageConfigs.Add(config); } for (int i = 1; i <= DataSize; i++) { DtScriptConfig config = CreateScriptConfig( string.Format(ScriptName, i), string.Format("FILENAME{0}", i), Version, string.Format("LOCATION{0}", i)); scriptConfigs.Add(config); } m2.SetScriptConfigs(scriptConfigs); m2.SetStorageConfigs(storageConfigs); bool result = ServerSyncMessage.Equals(m1, m2); string message = ServerSyncMessage.CreateJsonString(m2); Assert.AreEqual(false, result); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 2つのメッセージの内容が一致しないケース // スクリプト設定のバージョンのみが一致しないケース { storageConfigs = new List <DtStorageConfig>(); scriptConfigs = new List <DtScriptConfig>(); for (int i = 1; i <= DataSize; i++) { DtStorageConfig config = CreateStorageConfig( string.Format(StorageName, i), string.Format(Url, i), string.Format(Sas, i)); storageConfigs.Add(config); } for (int i = 1; i <= DataSize; i++) { DtScriptConfig config; if (i == 1) { config = CreateScriptConfig( string.Format(ScriptName, i), string.Format(FileName, i), Version + 1, string.Format(Location, i)); } else { config = CreateScriptConfig( string.Format(ScriptName, i), string.Format(FileName, i), Version, string.Format(Location, i)); } scriptConfigs.Add(config); } m2.SetScriptConfigs(scriptConfigs); m2.SetStorageConfigs(storageConfigs); bool result = ServerSyncMessage.Equals(m1, m2); string message = ServerSyncMessage.CreateJsonString(m2); Assert.AreEqual(false, result); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } }