public static void CannotPassingFlagsTest()
        {
            var setValue            = new TileCannotPassingFlags(0x02);
            var instance            = new TilePathSettingAllow(setValue);
            var changedPropertyList = new List <string>();

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

            TileCannotPassingFlags result = null;
            var errorOccured = false;

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

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

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

            // プロパティ変更通知が発火していないこと
            Assert.AreEqual(changedPropertyList.Count, 0);
        }
Beispiel #2
0
        public static void ConstructorTest(int code, bool isError,
                                           bool down, bool left, bool right, bool up)
        {
            TileCannotPassingFlags instance = null;

            var errorOccured = false;

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

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

            if (errorOccured)
            {
                return;
            }

            // 各プロパティの値が意図した値であること
            Assert.AreEqual(instance.Down, down);
            Assert.AreEqual(instance.Left, left);
            Assert.AreEqual(instance.Right, right);
            Assert.AreEqual(instance.Up, up);
        }
Beispiel #3
0
        public static void EqualsTest(int targetCode, int otherCode, bool answer)
        {
            var target = new TileCannotPassingFlags(targetCode);
            var other  = new TileCannotPassingFlags(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);
        }
Beispiel #4
0
        public static void SerializeTest()
        {
            var target = new TileCannotPassingFlags
            {
                Down = true,
            };
            var clone = DeepCloner.DeepClone(target);

            Assert.IsTrue(clone.Equals(target));
        }
Beispiel #5
0
        public static void ChangePathPermissionDependentTest(TileCannotPassingFlags 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.ChangePathPermissionDependent(flags);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

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

            if (!errorOccured)
            {
                // 通行許可設定が"下レイヤーに依存"になっていること
                Assert.AreEqual(instance.PathPermission, TilePathPermission.Dependent);

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

            // 意図したとおりプロパティ変更通知が発火していること
            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(TileCannotPassingFlags cannotPassingFlags, bool isError)
        {
            var errorOccured = false;

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

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);
        }
Beispiel #7
0
        public static void UpTest(bool up, int initCode, bool isError)
        {
            var instance            = new TileCannotPassingFlags(initCode);
            var changedPropertyList = new List <string>();

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

            var errorOccured = false;

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

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

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

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

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