public static void CreateForDBTypeTest() { DatabaseTypeDesc instance = null; var errorOccured = false; try { instance = DatabaseTypeDesc.Factory.CreateForDBType(); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 初期データ数が一致すること Assert.AreEqual(instance.DataDescList.Count, 1); Assert.AreEqual(instance.DataDescList.Count, instance.DataNameList.Count); // 初期項目数が一致すること Assert.AreEqual(instance.ItemDescList.Count, 0); Assert.AreEqual(instance.ItemDescList.Count, instance.DBItemSettingList.Count); var valueList = new DBItemValueList(); var dataDesc = new DatabaseDataDesc("DataName", valueList); instance.DataDescList.Add(dataDesc); // データ追加後、データ数が一致すること Assert.AreEqual(instance.DataDescList.Count, 2); Assert.AreEqual(instance.DataDescList.Count, instance.DataNameList.Count); var itemDesc = new DatabaseItemDesc { ItemName = "ItemName", ItemType = DBItemType.String, }; instance.ItemDescList.Add(itemDesc); // 項目追加後、項目数が一致すること Assert.AreEqual(instance.ItemDescList.Count, 1); Assert.AreEqual(instance.ItemDescList.Count, instance.DBItemSettingList.Count); }
public static void ItemValueListTest(bool isSetNull, bool isError) { var instance = new DatabaseDataDesc(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var itemValueList = isSetNull ? null : new DBItemValueList(); var errorOccured = false; try { instance.ItemValueList = itemValueList; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (!errorOccured) { var propertyValue = instance.ItemValueList; Assert.NotNull(propertyValue); Assert.NotNull(itemValueList); // セットした値と取得した値が一致すること Assert.IsTrue(propertyValue.Equals(itemValueList)); } // 意図したとおりプロパティ変更通知が発火していること if (errorOccured) { Assert.AreEqual(changedPropertyList.Count, 0); } else { Assert.AreEqual(changedPropertyList.Count, 1); Assert.IsTrue(changedPropertyList[0].Equals(nameof(DatabaseDataDesc.ItemValueList))); } }
public static void SerializeTest() { var target = new DatabaseDataDesc { DataName = "DataName", }; var changedPropertyList = new List <string>(); target.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var clone = DeepCloner.DeepClone(target); Assert.IsTrue(clone.Equals(target)); // プロパティ変更通知が発火していないこと Assert.AreEqual(changedPropertyList.Count, 0); }
public static void ConstructorTestB(DataName dataName, DBItemValueList itemValueList, bool isError) { var errorOccured = false; try { var _ = new DatabaseDataDesc(dataName, itemValueList); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); }
public static void ConstructorTestA() { var errorOccured = false; try { var _ = new DatabaseDataDesc(); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); }
private void ReadDbData(FileReadStatus status, DBData data) { // データ数 var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), "データ数数", length)); // DBデータ var dataDescList = new DatabaseDataDescList(); for (var i = 0; i < length; i++) { var desc = new DatabaseDataDesc(); // データ名 var dataName = status.ReadString(); status.AddOffset(dataName.ByteLength); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), "データ名", dataName.String)); desc.DataName = dataName.String; // 数値項目 ReadDbDataIntValues(status, out var intValues); desc.ItemValueList.AddRange(intValues); // 文字列項目 ReadDbDataStringValues(status, out var stringValues); desc.ItemValueList.AddRange(stringValues); dataDescList.Overwrite(i, new List <DatabaseDataDesc> { desc }); } data.DataDescList.Overwrite(0, dataDescList); }
/// <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); }