void VerifyCrackNamesListDomains( DsServer dc, DRS_MSG_CRACKREQ req, DRS_MSG_CRACKREPLY?reply) { DsDomain[] domains = ldapAd.ListDomains(dc); testSite.Assert.IsTrue( reply.Value.V1.pResult[0].cItems == domains.Length, "IDL_DRSCrackNames: DS_LIST_DOMAINS: wrong domain count, expect:{0}, got:{1}", domains.Length, reply.Value.V1.pResult[0].cItems ); string[] domainDns = new string[domains.Length]; for (int i = 0; i < domains.Length; ++i) { domainDns[i] = domains[i].Name; } DS_NAME_RESULTW result = reply.Value.V1.pResult[0]; string[] listDomainDns = new string[result.cItems]; for (int i = 0; i < result.cItems; ++i) { testSite.Assert.IsTrue( result.rItems[i].status == DS_NAME_ERROR.DS_NAME_NO_ERROR, "IDL_DRSCrackNames: DS_LIST_DOMAINS: return status should be 0, got {0}", result.rItems[i].status ); listDomainDns[i] = result.rItems[i].pName; } testSite.Assert.IsTrue( DrsrHelper.IsStringArrayEqual(domainDns, listDomainDns), "IDL_DRSCrackNames: DS_LIST_DOMAINS: failed to verify domain DNs." ); }
void VerifyCrackNamesListRoles( DsServer dc, DRS_MSG_CRACKREQ req, DRS_MSG_CRACKREPLY?reply) { bool isLds = (dc is AdldsServer); DsDomain domain = dc.Domain; DS_NAME_RESULTW result = reply.Value.V1.pResult[0]; if (isLds) { testSite.Assert.IsTrue( result.cItems == 2, "IDL_DRSCrackNames: DS_LIST_ROLES: FSMO role owner of a LDS server should be 2." ); } else { testSite.Assert.IsTrue( result.cItems == 5, "IDL_DRSCrackNames: DS_LIST_ROLES: FSMO role owner of a DS server should be 5." ); } for (int i = 0; i < result.cItems; ++i) { testSite.Assert.IsTrue( result.rItems[i].status == DS_NAME_ERROR.DS_NAME_NO_ERROR, "IDL_DRSCrackNames: DS_LIST_ROLES: return status should be 0, got {0}", result.rItems[i].status ); } testSite.Assert.IsTrue( domain.FsmoRoleOwners[FSMORoles.Schema] == result.rItems[0].pName, "IDL_DRSCrackNames: DS_LIST_ROLES: failed to verify schema owner." ); testSite.Assert.IsTrue( domain.FsmoRoleOwners[FSMORoles.DomainNaming] == result.rItems[0].pName, "IDL_DRSCrackNames: DS_LIST_ROLES: failed to verify domain naming owner." ); // DS server might have 3 more roles. if (!isLds) { testSite.Assert.IsTrue( domain.FsmoRoleOwners[FSMORoles.PDC] == result.rItems[0].pName, "IDL_DRSCrackNames: DS_LIST_ROLES: failed to verify PDCE owner." ); testSite.Assert.IsTrue( domain.FsmoRoleOwners[FSMORoles.RidAllocation] == result.rItems[0].pName, "IDL_DRSCrackNames: DS_LIST_ROLES: failed to verify RID allocation owner." ); testSite.Assert.IsTrue( domain.FsmoRoleOwners[FSMORoles.Infrastructure] == result.rItems[0].pName, "IDL_DRSCrackNames: DS_LIST_ROLES: failed to verify Infrastructure owner." ); } }