From ebd153c22ac1e659a49e91b5d476e21a5d372836 Mon Sep 17 00:00:00 2001 From: Tarek Mahmoud Sayed Date: Mon, 18 Sep 2017 14:04:50 -0700 Subject: [PATCH 1/2] Fix instantiating PrincipleContext with Domain type --- .../tests/PrincipalContextTests.cs | 6 +++++- .../DirectoryServices/Protocols/common/SearchResults.cs | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/System.DirectoryServices.AccountManagement/tests/PrincipalContextTests.cs b/src/System.DirectoryServices.AccountManagement/tests/PrincipalContextTests.cs index 3f12128f7560..bf67a3c0591e 100644 --- a/src/System.DirectoryServices.AccountManagement/tests/PrincipalContextTests.cs +++ b/src/System.DirectoryServices.AccountManagement/tests/PrincipalContextTests.cs @@ -170,7 +170,11 @@ public void Ctor_InvalidContexType_ThrowsInvalidEnumArgumentException(ContextTyp [Fact] public void Ctor_DomainContextType_ThrowsPrincipalServerDownException() { - Assert.Throws(() => new PrincipalContext(ContextType.Domain)); + if (Environment.MachineName.Equals(Environment.UserDomainName, StringComparison.OrdinalIgnoreCase)) + { + // The machine is not connected to a domain. we expect PrincipalContext(ContextType.Domain) to throw + Assert.Throws(() => new PrincipalContext(ContextType.Domain)); + } } [Fact] diff --git a/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs b/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs index 9edcb9389bc7..11ba06fdbe91 100644 --- a/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs +++ b/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs @@ -71,17 +71,18 @@ internal SearchResultReferenceCollection() { } public class SearchResultEntry { private DirectoryControl[] _resultControls = null; + private SearchResultAttributeCollection _attributes = new SearchResultAttributeCollection(); internal SearchResultEntry(string dn) => DistinguishedName = dn; internal SearchResultEntry(string dn, SearchResultAttributeCollection attrs) : this(dn) { - Attributes = attrs; + _attributes = attrs; } public string DistinguishedName { get; internal set; } - public SearchResultAttributeCollection Attributes { get; } + public SearchResultAttributeCollection Attributes => _attributes; public DirectoryControl[] Controls { From 2980e1c7d48af2f4de218b8cfaf0b5499c383cee Mon Sep 17 00:00:00 2001 From: Tarek Mahmoud Sayed Date: Mon, 18 Sep 2017 16:12:01 -0700 Subject: [PATCH 2/2] Enhancement --- .../Protocols/common/SearchResults.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs b/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs index 11ba06fdbe91..7c811207178e 100644 --- a/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs +++ b/src/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/common/SearchResults.cs @@ -71,18 +71,18 @@ internal SearchResultReferenceCollection() { } public class SearchResultEntry { private DirectoryControl[] _resultControls = null; - private SearchResultAttributeCollection _attributes = new SearchResultAttributeCollection(); - internal SearchResultEntry(string dn) => DistinguishedName = dn; + internal SearchResultEntry(string dn) : this(dn, new SearchResultAttributeCollection()) {} - internal SearchResultEntry(string dn, SearchResultAttributeCollection attrs) : this(dn) + internal SearchResultEntry(string dn, SearchResultAttributeCollection attrs) { - _attributes = attrs; + DistinguishedName = dn; + Attributes = attrs; } public string DistinguishedName { get; internal set; } - public SearchResultAttributeCollection Attributes => _attributes; + public SearchResultAttributeCollection Attributes { get; } public DirectoryControl[] Controls {