Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }