Пример #1
0
        public static void DataSettingTypeGetterTest(DBDataSettingType type)
        {
            var typeSetting         = new DBTypeSetting();
            var dataSetting         = new DBDataSetting(type, DBKind.User, 0);
            var instance            = new DatabaseTypeDesc(typeSetting, dataSetting);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            DBDataSettingType result = null;
            var errorOccured         = false;

            try
            {
                result = instance.DataSettingType;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 取得した結果が意図した値であること
            Assert.AreEqual(result, type);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Пример #2
0
        /// <summary>
        /// データIDの設定方法
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="setting">結果格納インスタンス</param>
        private void ReadDataSettingType(FileReadStatus status, DBDataSetting setting)
        {
            var typeCode = status.ReadInt();

            status.IncreaseIntOffset();

            var settingType = DBDataSettingType.FromValue(typeCode);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader),
                                                   "データID設定方法", settingType));

            // 「指定DBの指定タイプ」の場合、DB種別とタイプIDを取り出す
            DBKind dbKind = null;
            TypeId typeId = 0;

            if (settingType == DBDataSettingType.DesignatedType)
            {
                dbKind = DbKindFromSettingTypeCode(typeCode);

                Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader),
                                                       "DB種別", dbKind));

                typeId = TypeIdFromSettingTypeCode(typeCode);

                Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader),
                                                       "タイプID", typeId));
            }

            setting.SetDataSettingType(settingType, dbKind, typeId);
        }
        private static DBDataSetting GenerateData0Type02Setting()
        {
            var result = new DBDataSetting(DBDataSettingType.DesignatedType, DBKind.User, 4)
            {
                SettingValuesList = new DBItemValuesList(new List <IReadOnlyList <DBItemValue> >
                {
                    new List <DBItemValue>
                    {
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueString)"",
                    },
                    new List <DBItemValue>
                    {
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueString)"",
                    },
                })
            };

            return(result);
        }
Пример #4
0
        private IReadOnlyList <DatabaseItemDesc> MakeItemDescList(DBTypeSetting typeSetting,
                                                                  DBDataSetting dataSetting)
        {
            var result = new List <DatabaseItemDesc>();

            var itemSettingList = typeSetting.ItemSettingList;
            var valueList       = dataSetting.SettingValuesList[0];

            if (itemSettingList.Count != valueList.Count)
            {
                throw new InvalidOperationException(
                          "項目設定数と項目数が異なります。");
            }

            for (var i = 0; i < itemSettingList.Count; i++)
            {
                var desc = new DatabaseItemDesc
                {
                    ItemName           = itemSettingList[i].ItemName,
                    SpecialSettingDesc = itemSettingList[i].SpecialSettingDesc,
                    ItemType           = valueList[i].Type,
                };
                result.Add(desc);
            }

            return(result);
        }
Пример #5
0
        /// <summary>
        /// タイプ種別から、例外が発生しないようにインスタンスを生成する。
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        private static DBDataSetting MakeInstance(DBDataSettingType type)
        {
            var instance = new DBDataSetting();

            if (type != DBDataSettingType.DesignatedType)
            {
                instance.SetDataSettingType(type);
                return(instance);
            }

            instance.SetDataSettingType(type, DBKind.User, 0);
            return(instance);
        }
        private static DBDataSetting GenerateData0Type00Setting()
        {
            var result = new DBDataSetting(DBDataSettingType.FirstStringData)
            {
                SettingValuesList = new DBItemValuesList(new List <List <DBItemValue> >
                {
                    new List <DBItemValue>
                    {
                        (DBValueInt)(-255),
                        (DBValueString)"文字列",
                        (DBValueString)"MapChip/[A]World_Grass-Grass_pipo.png",
                        (DBValueString)"Map002.mps",
                        (DBValueInt)0,
                        (DBValueInt)(-2),
                        (DBValueInt)3,
                    },
                    new List <DBItemValue>
                    {
                        (DBValueInt)6,
                        (DBValueString)"7",
                        (DBValueString)"MapData/Map002.mps",
                        (DBValueString)"",
                        (DBValueInt)0,
                        (DBValueInt)(-3),
                        (DBValueInt)9,
                    },
                    new List <DBItemValue>
                    {
                        (DBValueInt)0,
                        (DBValueString)"うでぃた",
                        (DBValueString)"",
                        (DBValueString)"",
                        (DBValueInt)0,
                        (DBValueInt)0,
                        (DBValueInt)9,
                    },
                    new List <DBItemValue>
                    {
                        (DBValueInt)0,
                        (DBValueString)"",
                        (DBValueString)"まっぷでーた",
                        (DBValueString)"Map007.mps",
                        (DBValueInt)0,
                        (DBValueInt)(-1),
                        (DBValueInt)3,
                    }
                })
            };

            return(result);
        }
Пример #7
0
        /// <summary>
        /// タイプ設定
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="dataSetting">読み込み結果インスタンス</param>
        private void ReadDataSetting(FileReadStatus status, out DBDataSetting dataSetting)
        {
            Logger.Debug(FileIOMessage.StartCommonRead(typeof(DBTypeFileReader),
                                                       "データ設定"));

            var reader = new DBDataSettingReader(status, 1);

            var settings = reader.Read();

            dataSetting = settings[0];

            Logger.Debug(FileIOMessage.EndCommonRead(typeof(DBTypeFileReader),
                                                     "データ設定"));
        }
Пример #8
0
        public static void ConstructorATest()
        {
            var errorOccured = false;

            try
            {
                var _ = new DBDataSetting();
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);
        }
        private static DBDataSetting GenerateData0Type03Setting()
        {
            var result = new DBDataSetting(DBDataSettingType.EqualBefore)
            {
                SettingValuesList = new DBItemValuesList(new List <IReadOnlyList <DBItemValue> >
                {
                    new List <DBItemValue>
                    {
                        (DBValueString)"ウルファール\r\nエディ\r\n夕一",
                        (DBValueInt)33,
                        (DBValueInt)20,
                    }
                })
            };

            return(result);
        }
Пример #10
0
        public static void ConstructorBTest(DBDataSettingType type, DBKind dbKind,
                                            TypeId?typeId, bool isError)
        {
            var errorOccured = false;

            try
            {
                var _ = new DBDataSetting(type, dbKind, typeId);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);
        }
Пример #11
0
        private void ReadOneDBTypeSetting(BinaryReadStatus readStatus, ICollection <DBDataSetting> result)
        {
            var setting = new DBDataSetting();

            // ヘッダ
            ReadHeader(readStatus);

            // データIDの設定方法
            ReadDataSettingType(readStatus, setting);

            // 設定種別 & 種別順列
            ReadValueType(readStatus, out var types);

            // DBデータ設定値
            ReadDataSettingValue(readStatus, setting, types);

            result.Add(setting);
        }
Пример #12
0
        /// <summary>
        /// DBデータ設定値
        /// </summary>
        /// <param name="readStatus">読み込み経過状態</param>
        /// <param name="setting">結果格納インスタンス</param>
        /// <param name="itemTypes">項目種別リスト</param>
        private void ReadDataSettingValue(BinaryReadStatus readStatus, DBDataSetting setting,
                                          IReadOnlyCollection <DBItemType> itemTypes)
        {
            var length = readStatus.ReadInt();

            readStatus.IncreaseIntOffset();

            var numberItemCount = itemTypes.Count(x => x == DBItemType.Int);
            var stringItemCount = itemTypes.Count(x => x == DBItemType.String);

            var valuesList = new List <List <DBItemValue> >();

            for (var i = 0; i < length; i++)
            {
                ReadOneDataSettingValue(readStatus, valuesList, itemTypes, numberItemCount, stringItemCount);
            }

            setting.SettingValuesList = new DBItemValuesList(valuesList);
        }
Пример #13
0
        /// <summary>
        /// データIDの設定方法
        /// </summary>
        /// <param name="readStatus">読み込み経過状態</param>
        /// <param name="setting">結果格納インスタンス</param>
        private void ReadDataSettingType(BinaryReadStatus readStatus, DBDataSetting setting)
        {
            var typeCode = readStatus.ReadInt();

            readStatus.IncreaseIntOffset();

            var settingType = DBDataSettingType.FromValue(typeCode);

            // 「指定DBの指定タイプ」の場合、DB種別とタイプIDを取り出す
            DBKind dbKind = null;
            TypeId typeId = 0;

            if (settingType == DBDataSettingType.DesignatedType)
            {
                dbKind = DbKindFromSettingTypeCode(typeCode);

                typeId = TypeIdFromSettingTypeCode(typeCode);
            }

            setting.SetDataSettingType(settingType, dbKind, typeId);
        }
Пример #14
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     ReadMethod
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// DBタイプ設定一つ
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="result">結果格納インスタンス</param>
        /// <exception cref="InvalidOperationException">バイナリデータがファイル仕様と異なる場合</exception>
        private void ReadOneDBTypeSetting(FileReadStatus status, ICollection <DBDataSetting> result)
        {
            Logger.Debug(FileIOMessage.StartCommonRead(typeof(DBDataSettingReader), "DBタイプ設定"));

            var setting = new DBDataSetting();

            // ヘッダ
            ReadHeader(status);

            // データIDの設定方法
            ReadDataSettingType(status, setting);

            // 設定種別 & 種別順列
            ReadValueType(status, out var types);

            // DBデータ設定値
            ReadDataSettingValue(status, setting, types);

            Logger.Debug(FileIOMessage.EndCommonRead(typeof(DBDataSettingReader), "DBタイプ設定"));

            result.Add(setting);
        }
Пример #15
0
        /// <summary>
        /// DBデータ設定値
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="setting">結果格納インスタンス</param>
        /// <param name="itemTypes">項目種別リスト</param>
        private void ReadDataSettingValue(FileReadStatus status, DBDataSetting setting,
                                          IReadOnlyCollection <DBItemType> itemTypes)
        {
            var length = status.ReadInt();

            status.IncreaseIntOffset();

            Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader),
                                                   "データ数", length));

            var numberItemCount = itemTypes.Count(x => x == DBItemType.Int);
            var stringItemCount = itemTypes.Count(x => x == DBItemType.String);

            var valuesList = new List <List <DBItemValue> >();

            for (var i = 0; i < length; i++)
            {
                ReadOneDataSettingValue(status, valuesList, itemTypes, numberItemCount, stringItemCount);
            }

            setting.SettingValuesList = new DBItemValuesList(valuesList);
        }
Пример #16
0
        public static void TypeIdGetterTest(DBDataSettingType type, bool isError)
        {
            var answer = (TypeId)4;

            var typeSetting         = new DBTypeSetting();
            var dataSetting         = new DBDataSetting(type, DBKind.User, answer);
            var instance            = new DatabaseTypeDesc(typeSetting, dataSetting);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            TypeId result       = 0;
            var    errorOccured = false;

            try
            {
                result = instance.TypeId;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);

            if (errorOccured)
            {
                return;
            }

            // 取得した結果が意図した値であること
            Assert.AreEqual(result, answer);

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Пример #17
0
        private static DBDataSetting CreateDataSetting(int dataLength, int itemLength)
        {
            var dataSetting = new DBDataSetting(DBDataSettingType.Manual);

            for (var i = 0; i < itemLength; i++)
            {
                dataSetting.SettingValuesList.AddField(MakeItemType());
            }

            for (var i = 0; i < dataLength; i++)
            {
                dataSetting.SettingValuesList.AddNewValues();
                if (i == 0)
                {
                    dataSetting.SettingValuesList.RemoveAt(0);
                }
                for (var j = 0; j < dataSetting.SettingValuesList[i].Count; j++)
                {
                    dataSetting.SettingValuesList[i][j] = MakeItemValue(i, j);
                }
            }

            return(dataSetting);
        }
Пример #18
0
        /// <summary>
        /// DataDescのリスト
        /// </summary>
        /// <param name="typeSetting">タイプ設定</param>
        /// <param name="dataSetting">データ設定</param>
        /// <returns></returns>
        private IReadOnlyList <DatabaseDataDesc> MakeDataDescList(DBTypeSetting typeSetting,
                                                                  DBDataSetting dataSetting)
        {
            var result = new List <DatabaseDataDesc>();

            var dataNameList = typeSetting.DataNameList;
            var valuesList   = dataSetting.SettingValuesList;

            if (dataNameList.Count != valuesList.Count)
            {
                throw new InvalidOperationException(
                          $"データ名数とデータ数が異なります。");
            }

            for (var i = 0; i < typeSetting.DataNameList.Count; i++)
            {
                var desc = new DatabaseDataDesc(dataNameList[i],
                                                valuesList[i].ToLengthChangeableItemValueList());

                result.Add(desc);
            }

            return(result);
        }
        private static DBDataSetting GenerateData0Type01Setting()
        {
            var result = new DBDataSetting(DBDataSettingType.Manual);

            return(result);
        }