public void EqualsTestWithEmpty() { ServerSyncMessage m = new ServerSyncMessage(); List <DtScriptConfig> scriptConfigs = new List <DtScriptConfig>(); List <DtStorageConfig> storageConfigs = new List <DtStorageConfig>(); m.SetScriptConfigs(scriptConfigs); m.SetStorageConfigs(storageConfigs); string message = ServerSyncMessage.CreateJsonString(m); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); Assert.IsNotNull(m.Script); Assert.IsNotNull(m.Storage); }
public void SetScriptConfigsTest() { ServerSyncMessage m; List <DtScriptConfig> scriptConfigs; // 同じ名称だがバージョンの異なるレコードがDBに存在するケース { m = new ServerSyncMessage(); scriptConfigs = new List <DtScriptConfig>(); DtScriptConfig config = CreateScriptConfig("TestA", "FileName", 1, "Location"); scriptConfigs.Add(config); config = CreateScriptConfig("TestA", "FileName", 2, "Location"); // キー名が同じでバージョンが異なる要素を追加 scriptConfigs.Add(config); bool result = m.SetScriptConfigs(scriptConfigs); string message = ServerSyncMessage.CreateJsonString(m); Assert.AreEqual(true, result); Assert.AreEqual(1, m.Script.Count); Assert.AreEqual(2, m.Script["TestA"].Version); Assert.IsNotNull(m.Script); Assert.IsNotNull(m.Storage); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // 同じ名称だがバージョンの異なるレコードがDBに存在するケース // 最新のレコードがリストの先頭にある場合 { m = new ServerSyncMessage(); scriptConfigs = new List <DtScriptConfig>(); DtScriptConfig config = CreateScriptConfig("TestA", "FileName", 2, "Location"); scriptConfigs.Add(config); config = CreateScriptConfig("TestA", "FileName", 1, "Location"); // キー名が同じでバージョンが異なる要素を追加 scriptConfigs.Add(config); bool result = m.SetScriptConfigs(scriptConfigs); string message = ServerSyncMessage.CreateJsonString(m); Assert.AreEqual(true, result); Assert.AreEqual(1, m.Script.Count); Assert.AreEqual(2, m.Script["TestA"].Version); Assert.IsNotNull(m.Script); Assert.IsNotNull(m.Storage); Assert.IsNotNull(message); Assert.AreNotEqual(string.Empty, message); } // nullを設定したケース { m = new ServerSyncMessage(); scriptConfigs = new List <DtScriptConfig>(); bool result = m.SetScriptConfigs(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(); scriptConfigs = new List <DtScriptConfig>(); bool result = m.SetScriptConfigs(scriptConfigs); 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); } }
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); } }