// Line format: <level>_<@xref@>_<tag>_<value> (for test's purpose) private static int ParseTag(string str, out int tagLevel, out string tagXRef, out string tagName, out string tagValue) { var strTok = new GEDCOMParser(str, false); return(GEDCOMUtils.ParseTag(strTok, out tagLevel, out tagXRef, out tagName, out tagValue)); }
public void Test_ParseTag() { string str; int tagLevel2, res2; string tagXRef2, tagName2, tagValue2; str = "0 HEAD"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(0, tagLevel2); Assert.AreEqual("", tagXRef2); Assert.AreEqual("HEAD", tagName2); Assert.AreEqual("", tagValue2); Assert.AreEqual(2, res2); str = "0 @SUB1@ SUBM"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(0, tagLevel2); Assert.AreEqual("SUB1", tagXRef2); Assert.AreEqual("SUBM", tagName2); Assert.AreEqual("", tagValue2); Assert.AreEqual(3, res2); str = "0 @SUB1@ SUBM testVal"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(0, tagLevel2); Assert.AreEqual("SUB1", tagXRef2); Assert.AreEqual("SUBM", tagName2); Assert.AreEqual("testVal", tagValue2); Assert.AreEqual(4, res2); str = "1 SUBM @SUB1@"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(1, tagLevel2); Assert.AreEqual("", tagXRef2); Assert.AreEqual("SUBM", tagName2); Assert.AreEqual("@SUB1@", tagValue2); Assert.AreEqual(3, res2); str = " 1 SUBM @SUB1@"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(1, tagLevel2); Assert.AreEqual("", tagXRef2); Assert.AreEqual("SUBM", tagName2); Assert.AreEqual("@SUB1@", tagValue2); Assert.AreEqual(3, res2); str = "2 DATE FROM 20 JAN 1979 TO 15 MAY 2012"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(2, tagLevel2); Assert.AreEqual("", tagXRef2); Assert.AreEqual(GEDCOMTagName.DATE, tagName2); Assert.AreEqual("FROM 20 JAN 1979 TO 15 MAY 2012", tagValue2); Assert.AreEqual(3, res2); str = " test test test (FTB line with error)"; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(" test test test (FTB line with error)", tagValue2); Assert.AreEqual(-1, res2); str = " "; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(0, tagLevel2); Assert.AreEqual("", tagXRef2); Assert.AreEqual("", tagName2); Assert.AreEqual("", tagValue2); Assert.AreEqual(-2, res2); str = ""; res2 = GEDCOMUtils.ParseTag(str, out tagLevel2, out tagXRef2, out tagName2, out tagValue2); Assert.AreEqual(-2, res2); }