Ejemplo n.º 1
0
        public static void ConstructorTest(int code, bool isError,
                                           bool rightDown, bool leftDown, bool rightUp, bool leftUp)
        {
            TileImpassableFlags instance = null;

            var errorOccured = false;

            try
            {
                instance = new TileImpassableFlags(code);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            if (errorOccured)
            {
                return;
            }

            // 各プロパティの値が意図した値であること
            Assert.AreEqual(instance.RightDown, rightDown);
            Assert.AreEqual(instance.LeftDown, leftDown);
            Assert.AreEqual(instance.RightUp, rightUp);
            Assert.AreEqual(instance.LeftUp, leftUp);
        }
Ejemplo n.º 2
0
        public static void EqualsTest(int targetCode, int otherCode, bool answer)
        {
            var target = new TileImpassableFlags(targetCode);
            var other  = new TileImpassableFlags(otherCode);

            var result = false;

            var errorOccured = false;

            try
            {
                result = target.Equals(other);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            // 結果が取得した値と一致すること
            Assert.AreEqual(result, answer);
        }
        public static void ImpassableFlagsTest()
        {
            var setValue            = new TileImpassableFlags(0x02);
            var instance            = new TilePathSettingPartialDeny(setValue);
            var changedPropertyList = new List <string>();

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

            TileImpassableFlags result = null;

            var errorOccured = false;

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

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Ejemplo n.º 4
0
        public static void SerializeTest()
        {
            var target = new TileImpassableFlags
            {
                LeftDown = true
            };
            var clone = DeepCloner.DeepClone(target);

            Assert.IsTrue(clone.Equals(target));
        }
Ejemplo n.º 5
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)));
            }
        }
        public static void ConstructorTestB(TileImpassableFlags impassable, bool isError)
        {
            var errorOccured = false;

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

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);
        }
Ejemplo n.º 7
0
        public static void LeftUpTest(bool LeftUp, int initCode, bool isError)
        {
            var instance            = new TileImpassableFlags(initCode);
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

            if (errorOccured)
            {
                var setValue = instance.LeftUp;

                // セットした値と取得した値が一致すること
                Assert.IsTrue(setValue.Equals(setValue));
            }

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