public void FromTreeText_行頭がピリオド() { string lineFeed = Environment.NewLine; var text = lineFeed + lineFeed + ". .ノード1のタイトル" + lineFeed + " .ノード1の本文" + lineFeed + "ノード1の本文" + lineFeed + " .ノード1の本文" + lineFeed + ".. .ノード1-1のタイトル" + lineFeed + " .ノード1-1の本文" + lineFeed + ". ..ノード2のタイトル" + lineFeed + " ..ノード2の本文"; QuartetEditorDescription result; NodeConverterUtility.FromTreeText(text, '.', out result); Assert.AreEqual(2, result.Node.Count); Assert.AreEqual(".ノード1のタイトル", result.Node[0].Name); Assert.AreEqual( ".ノード1の本文" + lineFeed + "ノード1の本文" + lineFeed + ".ノード1の本文", result.Node[0].Content); Assert.AreEqual(1, result.Node[0].Children.Count); Assert.AreEqual(".ノード1-1のタイトル", result.Node[0].Children[0].Name); Assert.AreEqual(".ノード1-1の本文", result.Node[0].Children[0].Content); Assert.AreEqual(0, result.Node[0].Children[0].Children.Count); Assert.AreEqual("..ノード2のタイトル", result.Node[1].Name); Assert.AreEqual("..ノード2の本文", result.Node[1].Content); Assert.AreEqual(0, result.Node[1].Children.Count); }
public void FromTreeText_タイトルだけで終わり改行がない() { string lineFeed = Environment.NewLine; var text = ".ノード1のタイトル"; QuartetEditorDescription result; NodeConverterUtility.FromTreeText(text, '.', out result); Assert.AreEqual(1, result.Node.Count); Assert.AreEqual("ノード1のタイトル", result.Node[0].Name); Assert.AreEqual("", result.Node[0].Content); Assert.AreEqual(0, result.Node[0].Children.Count); }
/// <summary> /// ファイルの読み込みを行います /// </summary> /// <param name="path"></param> public void Load(string path) { if (File.Exists(path)) { if (this.IsEdited) { this.OpenNewProcess(path); return; } FileType?fileType = null; try { QuartetEditorDescription model; if (FileUtility.LoadJsonObject(path, out model) == true) { // QEDファイルとして読み込み成功 fileType = FileType.QEDocument; } if (!fileType.HasValue) { string treeText; var header = ConfigManager.Current.Config.TreeTextCharacters; if (FileUtility.LoadTextByAnyEncoding(path, out treeText) == true && NodeConverterUtility.FromTreeText(treeText, header.First(), out model) == true) { // 階層付きテキストファイルとして読み込み成功 fileType = FileType.TreeText; } } if (fileType.HasValue) { // 失敗していない場合、QuartetEditorDescriptionをNodeとして設定 this.Content.Load(model); this.IsEdited = false; this.FilePath = path; this.Type = fileType.Value; } } catch { } if (!fileType.HasValue) { this._ShowErrorMessageRequest.OnNext("ファイルの読み込みに失敗しました。"); } } }
public void FromTreeText_改行コードがLF() { string lineFeed = "\n"; var text = lineFeed + lineFeed + ".ノード1のタイトル" + lineFeed + "ノード1の本文" + lineFeed + "ノード1の本文" + lineFeed + lineFeed + ".ノード2のタイトル" + lineFeed + "ノード2の本文" + lineFeed + "ノード2の本文"; QuartetEditorDescription result; NodeConverterUtility.FromTreeText(text, '.', out result); Assert.AreEqual(2, result.Node.Count); Assert.AreEqual("ノード1のタイトル", result.Node[0].Name); Assert.AreEqual("ノード1の本文" + Environment.NewLine + "ノード1の本文" + Environment.NewLine, result.Node[0].Content); Assert.AreEqual(0, result.Node[0].Children.Count); Assert.AreEqual("ノード2のタイトル", result.Node[1].Name); Assert.AreEqual("ノード2の本文" + Environment.NewLine + "ノード2の本文", result.Node[1].Content); Assert.AreEqual(0, result.Node[1].Children.Count); }