Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
        public static void DBKindTest(DBDataSettingType type, bool isError)
        {
            var instance            = MakeInstance(type);
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        public static void DataSettingTypeTest(DBDataSettingType type)
        {
            DBDataSettingType result = null;

            var instance            = MakeInstance(type);
            var changedPropertyList = new List <string>();

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

            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);
        }
Exemplo n.º 5
0
        public static void ConstructorATest(DBDataSettingType type, DBKind dbKind, TypeId?typeId,
                                            bool isError)
        {
            DBType instance = null;

            var errorOccured = false;

            try
            {
                instance = new DBType(type, dbKind, typeId);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            if (errorOccured)
            {
                return;
            }

            // 各プロパティがセットした値と一致すること
            Assert.AreEqual(instance.DataSettingType, type);
            if (type == DBDataSettingType.DesignatedType)
            {
                Assert.NotNull(dbKind);
                Assert.AreEqual(instance.DBKind, dbKind);
                Assert.NotNull(typeId);
                Assert.AreEqual(instance.TypeId, typeId.Value);
            }
        }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
0
        public static void SetDataSettingTypeTest(DBDataSettingType settingType, DBKind dbKind,
                                                  TypeId?typeId, bool isError)
        {
            var instance            = CreateTypeDesc(1, 0);
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

            try
            {
                instance.SetDataSettingType(settingType, dbKind, typeId);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            if (!errorOccured)
            {
                // 各プロパティが意図した値と一致すること
                Assert.AreEqual(instance.DataSettingType, settingType);

                if (settingType != DBDataSettingType.DesignatedType)
                {
                    return;
                }
                Assert.NotNull(typeId);

                Assert.AreEqual(instance.DBKind, dbKind);
                Assert.AreEqual(instance.TypeId, typeId.Value);
            }

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 3);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(DatabaseTypeDesc.DataSettingType)));
                Assert.IsTrue(changedPropertyList[1].Equals(nameof(DatabaseTypeDesc.DBKind)));
                Assert.IsTrue(changedPropertyList[2].Equals(nameof(DatabaseTypeDesc.TypeId)));
            }
        }
Exemplo n.º 8
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);
        }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
0
        public static void SettingValuesListGetterTest(DBDataSettingType type, bool isSetNull, bool isError)
        {
            var instance            = MakeInstance(type);
            var changedPropertyList = new List <string>();

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

            var setValue = isSetNull
                ? null
                : new DBItemValuesList();

            var errorOccured = false;

            try
            {
                instance.SettingValuesList = setValue;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 1);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(DBDataSetting.SettingValuesList)));
            }
        }
Exemplo n.º 12
0
        public static void SetDataSettingTypeTest(DBDataSettingType type,
                                                  DBKind dbKind, TypeId?typeId, bool isError)
        {
            var instance            = MakeInstance(DBDataSettingType.Manual);
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

            try
            {
                instance.SetDataSettingType(type, dbKind, typeId);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 3);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(DBDataSetting.DataSettingType)));
                Assert.IsTrue(changedPropertyList[1].Equals(nameof(DBDataSetting.DBKind)));
                Assert.IsTrue(changedPropertyList[2].Equals(nameof(DBDataSetting.TypeId)));
            }
        }