Exemple #1
0
        public static void ImpassableFlagsTest(int code, bool isError)
        {
            var instance            = new TilePathSetting(code);
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Exemple #2
0
        public static void ChangePathPermissionDenyTest()
        {
            var instance            = new TilePathSetting();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            // 通行許可設定が"通行不可"になっていること
            Assert.AreEqual(instance.PathPermission, TilePathPermission.Deny);

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 5);
            Assert.IsTrue(changedPropertyList[0].Equals(nameof(TilePathSetting.PathPermission)));
            Assert.IsTrue(changedPropertyList[1].Equals(nameof(TilePathSetting.ImpassableFlags)));
            Assert.IsTrue(changedPropertyList[2].Equals(nameof(TilePathSetting.PathOption)));
            Assert.IsTrue(changedPropertyList[3].Equals(nameof(TilePathSetting.CannotPassingFlags)));
            Assert.IsTrue(changedPropertyList[4].Equals(nameof(TilePathSetting.IsCounter)));
        }
Exemple #3
0
        public static void PathPermissionTest()
        {
            var instance            = new TilePathSetting();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Exemple #4
0
        public static void IsCounterTest()
        {
            const bool setValue            = true;
            var        instance            = new TilePathSetting();
            var        changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            var value = instance.IsCounter;

            // セットした値と取得した値が一致すること
            Assert.AreEqual(value, setValue);

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 1);
            Assert.IsTrue(changedPropertyList[0].Equals(nameof(TilePathSetting.IsCounter)));
        }
Exemple #5
0
        public static void SerializeTest()
        {
            var target = new TilePathSetting
            {
                IsCounter = true
            };
            var clone = DeepCloner.DeepClone(target);

            Assert.IsTrue(clone.Equals(target));
        }
Exemple #6
0
        public static void ChangePathPermissionPartialDenyTest(TileImpassableFlags flags, bool isError)
        {
            var instance            = new TilePathSetting();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

            try
            {
                instance.ChangePathPermissionPartialDeny(flags);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            if (!errorOccured)
            {
                // 通行許可設定が"部分的に通行不可"になっていること
                Assert.AreEqual(instance.PathPermission, TilePathPermission.PartialDeny);

                // 通行許可設定がセットした値と一致すること(設定を指定しなかった場合デフォルト値が設定されていること)
                Assert.IsTrue(instance.ImpassableFlags.Equals(flags ?? new TileImpassableFlags()));
            }

            // 意図したとおりプロパティ変更通知が発火していること
            if (errorOccured)
            {
                Assert.AreEqual(changedPropertyList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedPropertyList.Count, 5);
                Assert.IsTrue(changedPropertyList[0].Equals(nameof(TilePathSetting.PathPermission)));
                Assert.IsTrue(changedPropertyList[1].Equals(nameof(TilePathSetting.ImpassableFlags)));
                Assert.IsTrue(changedPropertyList[2].Equals(nameof(TilePathSetting.PathOption)));
                Assert.IsTrue(changedPropertyList[3].Equals(nameof(TilePathSetting.CannotPassingFlags)));
                Assert.IsTrue(changedPropertyList[4].Equals(nameof(TilePathSetting.IsCounter)));
            }
        }
Exemple #7
0
        public static void ConstructorTest(int code, bool isError)
        {
            var errorOccured = false;

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

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);
        }
Exemple #8
0
        public static void PathOptionTest(TilePathOption option, bool isError)
        {
            var instance            = new TilePathSetting();
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

            try
            {
                instance.PathOption = option;
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            if (!errorOccured)
            {
                var value = instance.PathOption;

                // セットした値と取得した値が一致すること
                Assert.AreEqual(value, option);
            }

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