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); }
/// <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); }
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); }
/// <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); }
/// <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), "データ設定")); }
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); }
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); }
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); }
/// <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); }
/// <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); }
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // 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); }
/// <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); }
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); }
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); }
/// <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); }