public void DisplayAtomicPathObject() { ArrayList list = new ArrayList(); XmlNode column = m_columnList[1]; XmlViewsUtils.CollectBrowseItems(1, column, list, m_mdc, m_sda, m_layouts); IManyOnePathSortItem bvi = list[0] as IManyOnePathSortItem; // Try on first column. Nothing in the path matches, but we still dig inside // the span. int useHvo; List <XmlNode> collectStructNodes = new List <XmlNode>(); XmlNode useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[0], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(1, useHvo); CheckDebugId(useNode, "LexemeCf"); Assert.AreEqual(1, collectStructNodes.Count); CheckDebugId(collectStructNodes[0], "LexemeSpan"); // Try on matching column. collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[1], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(bvi.KeyObject, useHvo); CheckDebugId(useNode, "EtymologyComment"); Assert.AreEqual(1, collectStructNodes.Count); XmlNode structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "EtymologySpan"); // Try on a column involving a lookup. This affects the node output. collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[2], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(1, useHvo); CheckDebugId(useNode, "EntryMsaSeq"); Assert.AreEqual(1, collectStructNodes.Count); structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "EntryMsasDiv"); // On a different view of the Etymology, we should still get the Etymology object. collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[6], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(bvi.KeyObject, useHvo); CheckDebugId(useNode, "EtymologyComment2"); // But this column has no structural nodes. Assert.AreEqual(0, collectStructNodes.Count); }
public void DisplayPathlessObject() { ArrayList list = new ArrayList(); XmlNode column = m_columnList[0]; XmlViewsUtils.CollectBrowseItems(1, column, list, m_mdc, m_sda, m_layouts); IManyOnePathSortItem bvi = list[0] as IManyOnePathSortItem; // Try on original column. We get original object since there's no path, // but we still dig inside the span int useHvo; List <XmlNode> collectStructNodes = new List <XmlNode>(); XmlNode useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[0], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(1, useHvo); CheckDebugId(useNode, "LexemeCf"); Assert.AreEqual(1, collectStructNodes.Count); CheckDebugId(collectStructNodes[0], "LexemeSpan"); // Try on another column. Again we get original object, and dig inside span collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[1], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(1, useHvo); CheckDebugId(useNode, "EtymologyObj"); Assert.AreEqual(1, collectStructNodes.Count); XmlNode structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "EtymologySpan"); // Try on a column involving a lookup. This affects the node output. collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[2], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(1, useHvo); CheckDebugId(useNode, "EntryMsaSeq"); Assert.AreEqual(1, collectStructNodes.Count); structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "EntryMsasDiv"); }
public void DisplayDoubleSeqPathObject() { ArrayList list = new ArrayList(); XmlNode column = m_columnList[5]; XmlViewsUtils.CollectBrowseItems(6, column, list, m_mdc, m_sda, m_layouts); IManyOnePathSortItem bvi = list[0] as IManyOnePathSortItem; // Try on first column. Nothing in the path matches, but we still dig inside // the span. int useHvo; List <XmlNode> collectStructNodes = new List <XmlNode>(); XmlNode useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[0], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(6, useHvo); CheckDebugId(useNode, "LexemeCf"); Assert.AreEqual(1, collectStructNodes.Count); CheckDebugId(collectStructNodes[0], "LexemeSpan"); // Try on etymology column. Has an <obj>, but doens't match collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[1], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(6, useHvo); CheckDebugId(useNode, "EtymologyObj"); Assert.AreEqual(1, collectStructNodes.Count); XmlNode structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "EtymologySpan"); // Try on a column involving a lookup. This affects the node output. collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[2], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(6, useHvo); CheckDebugId(useNode, "EntryMsaSeq"); Assert.AreEqual(1, collectStructNodes.Count); structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "EntryMsasDiv"); // On the matching column, we should get the leaf object collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[5], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(bvi.KeyObject, useHvo); CheckDebugId(useNode, "PACN_Para"); Assert.AreEqual(1, collectStructNodes.Count); structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "DosDiv"); // On the gloss column, we get the sense. collectStructNodes.Clear(); useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[3], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(7, useHvo); // the first sense CheckDebugId(useNode, "SenseGloss"); Assert.AreEqual(1, collectStructNodes.Count); structNode1 = collectStructNodes[0]; CheckDebugId(structNode1, "SenseGlossPara"); // Make sure that for later Bvis, we get later senses collectStructNodes.Clear(); bvi = list[3] as IManyOnePathSortItem; useNode = XmlViewsUtils.GetNodeToUseForColumn(bvi, m_columnList[3], m_mdc, m_sda, m_layouts, out useHvo, collectStructNodes); Assert.AreEqual(9, useHvo); // the third sense, in which context we display the 4th SD }