public void MSCPSWS_S04_TC07_ResolveMultipleClaim_NullResolveInput()
        {
            // Call the helper method to get all claims providers.
            SPProviderHierarchyTree[] allProviders = TestSuiteBase.GetAllProviders();

            ArrayOfString   providerNames = new ArrayOfString();
            SPPrincipalType principalType = SPPrincipalType.User;

            foreach (SPProviderHierarchyTree provider in allProviders)
            {
                providerNames.Add(provider.ProviderName);
            }

            bool caughtException = false;

            try
            {
                // Call Resolve multiple method with resolveInput parameter sets to null.
                CPSWSAdapter.ResolveMultipleClaim(providerNames, principalType, null);
            }
            catch (FaultException faultException)
            {
                caughtException = true;

                // If the server returns an ArgumentNullException<""resolveInput""> message, then the following requirement can be captured.
                Site.CaptureRequirementIfIsTrue(
                    this.VerifyArgumentNullException(faultException, "resolveInput"),
                    632,
                    @"[In ResolveMultipleClaim] If this [resolveInput] is NULL, the protocol server MUST return an ArgumentNullException<""resolveInput""> message.");
            }
            finally
            {
                this.Site.Assert.IsTrue(caughtException, "If resolveInput is NULL, the protocol server should return an ArgumentNullException<resolveInput> message.");
            }
        }
        public void MSCPSWS_S04_TC06_ResolveMultipleClaim_SomeValid()
        {
            // Call the helper method to get all claims providers.
            SPProviderHierarchyTree[] allProviders = TestSuiteBase.GetAllProviders();

            ArrayOfString   providerNames = new ArrayOfString();
            SPPrincipalType principalType = SPPrincipalType.SecurityGroup;

            SPClaim[] resolveInput = new SPClaim[2];

            resolveInput[0] = this.GenerateSPClaimResolveInput_Valid();
            resolveInput[1] = this.GenerateSPClaimResolveInput_Invalid();

            foreach (SPProviderHierarchyTree provider in allProviders)
            {
                if (provider.Children.Length != 0)
                {
                    providerNames.Add(provider.ProviderName);
                }
            }

            // Call Resolve multiple claim method to resolve 2 claims to picker entities using a list of claims providers.
            PickerEntity[] responseOfResolveMultipleClaimResult = CPSWSAdapter.ResolveMultipleClaim(providerNames, principalType, resolveInput);
            Site.Assert.IsNotNull(responseOfResolveMultipleClaimResult, "The resolve multiple claim result should not be null.");

            // If the resolve multiple result contains 2 picker entities, that is to say, one picker entity in the response corresponding to one user in the request, then the following requirement can be captured.
            Site.CaptureRequirementIfAreEqual <int>(
                responseOfResolveMultipleClaimResult.Length,
                2,
                369,
                @"[In ResolveMultipleClaimResponse] ResolveMultipleClaimResult: The list MUST contain one and only one picker entity per one claim in the input.");

            Site.CaptureRequirementIfAreEqual <int>(
                responseOfResolveMultipleClaimResult.Length,
                2,
                350,
                @"[In ResolveMultipleClaim] The protocol server MUST resolve across all claims providers that meet all the following criteria:
The claims providers are associated with the Web application (1) specified in the input message.
The claims providers are listed in the provider names in the input message.
The claims providers support resolve.");
        }