public static void IsWindowModeTest(bool isWindowMode) { var instance = new GameIniData(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var errorOccured = false; try { instance.IsWindowMode = isWindowMode; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); var setValue = instance.IsWindowMode; // セットした値と取得した値が一致すること Assert.IsTrue(setValue.Equals(isWindowMode)); // 意図したとおりプロパティ変更通知が発火していること Assert.AreEqual(changedPropertyList.Count, 1); Assert.IsTrue(changedPropertyList[0].Equals(nameof(GameIniData.IsWindowMode))); }
public static void SerializeTest() { var target = new GameIniData { DisplayNumber = 2, }; var changedPropertyList = new List <string>(); target.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var clone = DeepCloner.DeepClone(target); Assert.IsTrue(clone.Equals(target)); // プロパティ変更通知が発火していないこと Assert.AreEqual(changedPropertyList.Count, 0); }
public static void FileIOTest(string inputFileName, string outputFileName) { var dir = Path.GetDirectoryName($@"{EditorIniDataTestItemGenerator.TestWorkRootDir}\{outputFileName}"); dir.CreateDirectoryIfNeed(); var reader = new GameIniFileReader( $@"{GameIniDataTestItemGenerator.TestWorkRootDir}\{inputFileName}"); GameIniData data = null; var isSuccessRead = false; try { data = reader.ReadAsync().GetAwaiter().GetResult(); isSuccessRead = true; } catch (Exception ex) { logger.Exception(ex); } Assert.IsTrue(isSuccessRead); var writer = new GameIniFileWriter( $@"{GameIniDataTestItemGenerator.TestWorkRootDir}\{outputFileName}"); var isSuccessWrite = false; try { writer.WriteAsync(data).GetAwaiter().GetResult(); isSuccessWrite = true; } catch (Exception ex) { logger.Exception(ex); } Assert.IsTrue(isSuccessWrite); Console.WriteLine( $@"Written FilePath : {GameIniDataTestItemGenerator.TestWorkRootDir}\{outputFileName}"); }
private static void Common(GameIniData resultData, string readFileName) { var filePath = $@"{CommonFileTestItemGenerator.TestWorkRootDir}\{readFileName}"; var reader = new GameIniFileReader(filePath); GameIniData readData = null; var readResult = false; var errorMessage = ""; try { readData = reader.ReadSync(); readResult = true; } catch (Exception ex) { logger.Exception(ex); errorMessage = ex.Message; } // 正しく読めること if (!readResult) { throw new InvalidOperationException( $"Error Occured. Message : {errorMessage}"); } Assert.NotNull(readData); Console.WriteLine("Read Test Clear."); // 意図したデータと一致すること var propertyInfos = typeof(GameIniData).GetProperties(); foreach (var propertyInfo in propertyInfos) { var readPropertyValue = propertyInfo.GetValue(readData); var answerPropertyValue = propertyInfo.GetValue(resultData); Assert.AreEqual(readPropertyValue, answerPropertyValue); } }
public static void ProxyAddressTest(ProxyAddress address, bool isError) { var instance = new GameIniData(); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var errorOccured = false; try { instance.ProxyAddress = address; } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーフラグが一致すること Assert.AreEqual(errorOccured, isError); if (!errorOccured) { var setValue = instance.ProxyAddress; // セットした値と取得した値が一致すること Assert.IsTrue(setValue.Equals(address)); } // 意図したとおりプロパティ変更通知が発火していること if (errorOccured) { Assert.AreEqual(changedPropertyList.Count, 0); } else { Assert.AreEqual(changedPropertyList.Count, 1); Assert.IsTrue(changedPropertyList[0].Equals(nameof(GameIniData.ProxyAddress))); } }
public static void WriteSyncTest(GameIniData outputDat, string outputFileName) { Path.GetDirectoryName(outputFileName).CreateDirectoryIfNeed(); var writer = new GameIniFileWriter(outputFileName); var isSuccess = false; var errorMessage = ""; try { writer.WriteSync(outputDat); isSuccess = true; } catch (Exception e) { errorMessage = e.Message; } // 出力成功すること if (!isSuccess) { throw new InvalidOperationException( $"Error message: {errorMessage}"); } // デバッグログにファイルの内容を出力 logger.Debug("Outputファイル内容出力開始"); var outputTextLines = File.ReadAllLines(outputFileName); foreach (var outputTextLine in outputTextLines) { logger.Debug(outputTextLine); } logger.Debug("Outputファイル内容出力完了"); Assert.True(true); }