private void UpdateSingleWordTaxonNamePartOfTypeRanks(XmlNode context, string xpath, IEnumerable<ITaxonNamePart> listOfNonSingleWordTaxonNameParts) { var document = context.OwnerDocument(); context.SelectNodes(xpath) .Cast<XmlNode>() .AsParallel() .ForAll(node => { var taxonNamePart = new TaxonNamePart(node); var matches = listOfNonSingleWordTaxonNameParts.Where(t => t.FullName == taxonNamePart.FullName).ToList(); if (matches.Count == 1) { var match = matches.First(); if (match.Rank != taxonNamePart.Rank) { XmlAttribute rankAttribute = node.Attributes[AttributeNames.Type]; if (rankAttribute == null) { rankAttribute = document.CreateAttribute(AttributeNames.Type); node.Attributes.Append(rankAttribute); } rankAttribute.InnerText = match.Rank.ToRankString(); } } }); }
public void TaxonNamePart_WithValidNodeParameterInConstructor_ShouldReturnValidObject(string nodeString, SpeciesPartType taxonRank, string fullName, string taxonName, string id, bool abbreviated) { // Arrange var document = new XmlDocument(); document.LoadXml(nodeString); // Act var taxonNamePart = new TaxonNamePart(document.DocumentElement); // Assert Assert.IsNotNull(taxonNamePart, "Object should not be null."); Assert.AreEqual(abbreviated, taxonNamePart.IsAbbreviated, "Taxon name part should " + (abbreviated ? "not " : string.Empty) + "be abbreviated."); Assert.AreEqual(taxonRank, taxonNamePart.Rank, $"Rank should be '{taxonRank}'."); Assert.AreEqual(taxonName, taxonNamePart.Name, $"Name should be '{taxonName}'."); Assert.AreEqual(fullName, taxonNamePart.FullName, $"Full Name should be '{fullName}'."); Assert.AreEqual(id, taxonNamePart.Id, $"Id should be '{id}'."); }