public void MSOXCMAPIHTTP_S02_TC20_TestHasValueWithPropertyTypePtypString8()
{
this.CheckMapiHttpIsSupported();
#region Call Bind request type to established a session context with the address book server.
this.Bind();
#endregion
#region Call QueryRows with all optional fields exist and the type of all properties specified.
uint tableCount = 0;
uint[] table = null;
uint rowCount = ConstValues.QueryRowsRequestedRowNumber;
STAT stat = new STAT();
stat.InitiateStat();
LargePropertyTagArray columns = new LargePropertyTagArray()
{
PropertyTagCount = 1,
PropertyTags = new PropertyTag[]
{
new PropertyTag
{
PropertyType = (ushort)PropertyTypeValues.PtypString8,
PropertyId = (ushort)PropertyID.PidTagDisplayName
}
}
};
QueryRowsRequestBody queryRowsRequestBody = this.BuildQueryRowsRequestBody(true, stat, tableCount, table, rowCount, true, columns);
QueryRowsResponseBody queryRowsResponseBody = this.Adapter.QueryRows(queryRowsRequestBody);
Site.Assert.AreEqual<uint>((uint)0, queryRowsResponseBody.ErrorCode, "QueryRows operation should succeed and 0 is expected to be returned. The return value is {0}.", queryRowsResponseBody.ErrorCode);
#endregion
#region Capture code
AddressBookPropertyRow[] rowData = queryRowsResponseBody.RowData;
for (int i = 0; i < rowData.Length; i++)
{
List<AddressBookPropertyValue> valueArray = new List<AddressBookPropertyValue>(rowData[i].ValueArray);
for (int j = 0; j < valueArray.Count; j++)
{
if (columns.PropertyTags[j].PropertyType == 0x1E)
{
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R2002");
// Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R2002
this.Site.CaptureRequirementIfIsInstanceOfType(
valueArray[j].HasValue,
typeof(byte),
2002,
@"[In AddressBookPropertyValue Structure] HasValue (optional) (1 byte): An unsigned integer when the PropertyType ([MS-OXCDATA] section 2.11.1) is known to be PtypString8.");
}
}
}
#endregion
#region Call Unbind request to destroy the session between the client and the server.
this.Unbind();
#endregion
}