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); }
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))); }
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); }
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))); }
public static void SerializeTest() { var target = new TilePathSetting { IsCounter = true }; var clone = DeepCloner.DeepClone(target); Assert.IsTrue(clone.Equals(target)); }
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 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); }
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))); } }