public void MSOXNSPI_S05_TC19_GetMatchesWithNonZeroReserved1()
{
this.CheckProductSupported();
this.CheckMAPIHTTPTransportSupported();
#region Call NspiBind to initiate a session between the client and the server.
uint flags = 0;
STAT stat = new STAT();
stat.InitiateStat();
FlatUID_r guid = new FlatUID_r
{
Ab = new byte[16]
};
FlatUID_r? serverGuid = guid;
this.Result = this.ProtocolAdatper.NspiBind(flags, stat, ref serverGuid);
Site.Assert.AreEqual<ErrorCodeValue>(ErrorCodeValue.Success, this.Result, "NspiBind should return Success!");
#endregion
#region Call NspiGetMatches with the input parameter Reserved1 set to 1.
uint reserved1 = 0x1;
uint reserver2 = 0;
PropertyTagArray_r? proReserved = null;
uint requested = Constants.GetMatchesRequestedRowNumber;
Restriction_r res_r = new Restriction_r
{
Rt = 0x8,
Res =
new RestrictionUnion_r
{
ResExist =
new ExistRestriction_r
{
Reserved1 = 0,
Reserved2 = 0,
PropTag = (uint)AulProp.PidTagEntryId
}
}
};
Restriction_r? filter = res_r;
PropertyTagArray_r propTags = new PropertyTagArray_r
{
CValues = 3,
AulPropTag = new uint[3]
{
(uint)AulProp.PidTagEntryId,
(uint)AulProp.PidTagDisplayType,
(uint)AulProp.PidTagObjectType
}
};
PropertyTagArray_r? propTagsOfGetMatches = propTags;
PropertyName_r? propNameOfGetMatches = null;
// Output parameters.
PropertyTagArray_r? outMIds;
PropertyRowSet_r? rowsOfGetMatches;
this.Result = this.ProtocolAdatper.NspiGetMatches(reserved1, ref stat, proReserved, reserver2, filter, propNameOfGetMatches, requested, out outMIds, propTagsOfGetMatches, out rowsOfGetMatches, false);
#region Capture
// Add the debug information
Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXNSPI_R1109, the value of the result is {0}", this.Result);
// Verify MS-OXNSPI requirement: MS-OXNSPI_R1109
Site.CaptureRequirementIfIsTrue(
Enum.IsDefined(typeof(ErrorCodeValue), this.Result),
1109,
@"[In NspiGetMatches] [Server Processing Rules: Upon receiving message NspiGetMatches, the server MUST process the data from the message subject to the following constraints:] [Constraint 3] If the input parameter Reserved1 contains any value other than 0, the server MUST return one of the return values [Success, UnbindSuccess, UnbindFailure, ErrorsReturned, GeneralFailure, NotSupported, InvalidObject, OutOfResources, NotFound, LogonFailed, TooComplex, InvalidCodepage, InvalidLocale, TableTooBig, InvalidBookmark, AccessDenied, NotEnoughMemory and InvalidParameter] specified in section 2.2.1.2.");
#endregion
#endregion
#region Call NspiUnbind to destroy the session between the client and the server.
uint returnValue = this.ProtocolAdatper.NspiUnbind(0);
Site.Assert.AreEqual<uint>(1, returnValue, "NspiUnbind method should return 1 (Success).");
#endregion
}