diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/References.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/References.cs index ab286b7314..5bc13835d1 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/References.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/References.cs @@ -54,5 +54,25 @@ namespace ICSharpCode.PackageManagement.EnvDTE { return GetEnumerator(); } + + public Reference Item(string identity) + { + return Find(identity); + } + + public Reference Find(string identity) + { + foreach (Reference reference in this) { + if (IsMatch(reference, identity)) { + return reference; + } + } + return null; + } + + bool IsMatch(Reference reference, string identity) + { + return String.Equals(reference.Name, identity, StringComparison.InvariantCultureIgnoreCase); + } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferencesTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferencesTests.cs index 8cd9ab237c..23da89590b 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferencesTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ReferencesTests.cs @@ -145,5 +145,38 @@ namespace PackageManagement.Tests.EnvDTE ReferenceCollectionAssertAreEqual(expectedReferences, enumerable); } + + [Test] + public void Find_SystemXmlWhenProjectHasSystemXmlReference_OneReferenceReturned() + { + CreateReferences(); + msbuildProject.AddReference("System.Xml"); + + Reference reference = references.Find("System.Xml"); + + Assert.AreEqual("System.Xml", reference.Name); + } + + [Test] + public void Find_SystemXmlWhenProjectHasSystemXmlReferenceButWithDifferentCase_OneReferenceReturned() + { + CreateReferences(); + msbuildProject.AddReference("System.Xml"); + + Reference reference = references.Find("SYSTEM.XML"); + + Assert.AreEqual("System.Xml", reference.Name); + } + + [Test] + public void Item_SystemXmlWhenProjectHasSystemXmlReference_OneReferenceReturned() + { + CreateReferences(); + msbuildProject.AddReference("System.Xml"); + + Reference reference = references.Item("System.Xml"); + + Assert.AreEqual("System.Xml", reference.Name); + } } }