예제 #1
0
        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)));
        }
예제 #2
0
        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);
        }
예제 #3
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}");
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        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)));
            }
        }
예제 #6
0
        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);
        }