public static void ChangePathPermissionAllowTest(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.ChangePathPermissionAllow(flags); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (!errorOccured) { // 通行許可設定が"許可"になっていること Assert.AreEqual(instance.PathPermission, TilePathPermission.Allow); // 通行方向設定がセットした値と一致すること(設定を指定しなかった場合デフォルト値が設定されていること) 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))); } }