C# Class Microsoft.Protocols.TestSuites.MS_OXCPRPT.MS_OXCPRPTAdapter

MS_OXCPRPTAdapter protocol adapter.
Inheritance: Microsoft.Protocols.TestTools.ManagedAdapterBase, IMS_OXCPRPTAdapter
Show file Open project: OfficeDev/Interop-TestSuites

Public Methods

Method Description
CheckMAPIHTTPTransportSupported ( bool &isSupported ) : void

This method is used to check whether MAPIHTTP transport is supported by SUT.

CheckRequirementEnabled ( int rsid, bool &enabled ) : void

Checks if the requirement is enabled in SHOULD/MAY configuration file.

GetCommonObjectProperties ( CommonObjectProperty commonProperty ) : void

Get common object properties in order to test their type.

GetObject ( ServerObjectType objType, ObjectToOperate objToOperate ) : void

This method is used to get object for different object types.

Initialize ( ITestSite testSite ) : void

Initialize the adapter.

InitializeMailBox ( ) : void

This method is used to initialize the test environment for private mailbox.

InitializePublicFolder ( ) : void

This method is used to initialize the test environment for public folders.

Reset ( ) : void

Reset the adapter. Adapter will disconnect with server via calling RPC method. At the same time, the ITestSite context will be reseated.

RopCloneStreamMethod ( ) : void

This method is used to create a new Stream object that is a clone of another Stream object.

RopCommitStreamMethod ( OpenModeFlags openFlag, bool &isPropertyValueChanged ) : void

This method is used to ensure that any changes made to a Stream object are persisted in storage for a Folder object.

RopCopyPropertiesMethod ( CopyFlags copyFlag, bool isWantAsynchronousZero, bool isDestinationExist, bool &isPropertiesDeleted, bool &isChangedInDB, bool &isOverwriteDestination, bool &isReturnedRopProgress, CPRPTErrorCode &error ) : void

This method is used to copy or move one or more properties from one object to another.

RopCopyToForPublicFolder ( ) : void

This method is used to copy or move properties from a source object to a destination object on public folder.

RopCopyToMethod ( CopyFlags copyFlag, bool isWantAsynchronousZero, bool isWantSubObjectsZero, bool isDestinationExist, bool &isPropertiesDeleted, bool &isSubObjectCopied, bool &isOverwriteDestination, bool &isReturnedRopProgress, bool &isChangedInDB, CPRPTErrorCode &error ) : void

This method is used to copy or move all but a specified few properties from a source object to a destination object.

RopCopyToMethodForErrorCodeTable ( CopyToCondition condition ) : void

This method is used to copy or move properties from a source object to a destination object with error code returned.

RopCopyToStreamMethod ( bool isDestinationExist, bool &isReadWriteSuccess, CPRPTErrorCode &error ) : void

This method is used to copy a specified number of bytes from the current seek pointer in the source stream to the current seek pointer in the destination stream.

RopDeletePropertiesMethod ( bool &isNoValidValueReturnedForDeletedProperties, bool &isChangedInDB ) : void

This method is used to remove the specified properties from an object.

RopDeletePropertiesNoReplicateMethod ( bool &isSameWithDeleteProperties, bool &isChangedInDB ) : void

This method is used to delete property values from an object without invoking replication.

RopGetNamesFromPropertyIdsMethod ( PropertyIdType propertyIdType ) : void

This method is used to map concrete property IDs to abstract, client-defined named properties.

RopGetPropertiesAllMethod ( bool isPropertySizeLimitZero, bool isPropertyLagerThanLimit, bool isUnicode, bool &isValueContainsNotEnoughMemory ) : void

This method is used to query for and return all of the property tags and values of properties that have been set.

RopGetPropertiesListMethod ( ) : void

This method is used to query for and returns all of the property tags for properties that have been set on an object.

RopGetPropertiesSpecificForTaggedProperties ( ) : void

This method is used to query for and return the values of properties specified in the PropertyTags field, which is related with tagged properties.

RopGetPropertiesSpecificForWantUnicode ( bool isUnicode ) : void

This method is used to query for and return the values of properties specified in the PropertyTags field, which is related with unicode format.

RopGetPropertiesSpecificMethod ( bool isTestOrder, bool isPropertySizeLimitZero, bool isPropertyLagerThanLimit, bool &isValueContainsNotEnoughMemory ) : void

This method is used to query for and return the values of properties specified in the PropertyTags field.

RopGetPropertyIdsFromNamesMethod ( bool isTestOrder, bool isCreateFlagSet, bool isPropertyNameExisting, SpecificPropertyName specialPropertyName, bool &isCreatedEntryReturned, CPRPTErrorCode &error ) : void

This method is used to map abstract, client-defined named properties to concrete 16-bit property IDs.

RopGetStreamSizeMethod ( ) : void

This method is used to retrieve the size of the stream.

RopLockRegionStreamMethod ( PreStateBeforeLock preState, CPRPTErrorCode &error ) : void

This method is used to lock a specified range of bytes in a Stream object.

RopOpenStreamMethod ( ObjectToOperate obj, OpenModeFlags openFlag, bool isPropertyTagExist, bool &isStreamSizeEqualToStream, CPRPTErrorCode &error ) : void

This method is used to open a property as a Stream object, enabling the client to perform various streaming operations on the property.

RopOpenStreamWithDifferentPropertyType ( ObjectToOperate obj, PropertyTypeName propertyType, CPRPTErrorCode &error ) : void

This method is used to open a different type of properties as a Stream object, enabling the client to perform various streaming operations on the property.

RopProgressMethod ( bool isOtherRopSent, bool isWantCancel, bool &isOriginalOpsResponse, bool &isOtherRopResponse ) : void

This method is used to report the progress status of an asynchronous operation.

RopQueryNamedPropertiesMethod ( QueryFlags queryFlags, bool hasGuid, bool &isKind0x01Returned, bool &isKind0x00Returned, bool &isNamedPropertyGuidReturned ) : void

The method is used to query an object for all the named properties.

RopReadStreamMethod ( bool isReadingFailed ) : void

This method is used to read the stream of bytes from a Stream object.

RopReadStreamWithLimitedSize ( ushort byteCount, uint maxByteCount ) : void

This method is used to read the stream of limited size bytes from a Stream object.

RopReleaseMethod ( ObjectToOperate obj, bool &isPropertyValueChanged ) : void

This method is used to release all resources associated with a Server object. The client uses RopRelease ([MS-OXCROPS] section 2.2.14.3) after it is done with the Stream object.

RopReleaseMethodNoVerify ( ObjectToOperate obj ) : void

This method is used to release all resources associated with a Server object. The client uses RopRelease ([MS-OXCROPS] section 2.2.14.3) after it is done with the Stream object.

RopSaveChangesAttachmentMethod ( bool &isChangedInDB ) : void

This method is used to commit the changes made to an attachment.

RopSaveChangesMessageMethod ( bool &isChangedInDB ) : void

This method is used to commit the changes made to a message.

RopSeekStreamMethod ( SeekStreamCondition condition, bool &isStreamExtended, CPRPTErrorCode &error ) : void

This method is used to set the seek pointer to a new location, which is relative to the beginning of the stream, the end of the stream, or the location of the current seek pointer.

RopSetPropertiesMethod ( bool &isModifiedValueReturned, bool &isChangedInDB ) : void

This method is used to update the specified properties on an object.

RopSetPropertiesNoReplicateMethod ( bool &isSameWithSetProperties ) : void

This method is used to set property values for an object without invoking replication.

RopSetStreamSizeMethod ( bool isSizeIncreased, bool &isExtendedValueZero, bool &isLost, bool &isIncrease ) : void

This method is used to set the size of a stream.

RopUnlockRegionStreamMethod ( bool isPreviousLockExists ) : void

This method is used to unlock a specified range of bytes in a Stream object.

RopWriteAndCommitStreamMethod ( CPRPTErrorCode &error ) : void

This method is used to write bytes to a stream and commits the stream.

RopWriteStreamMethod ( OpenModeFlags openFlag, bool isExceedMax, CPRPTErrorCode &error ) : void

This method is used to write the stream of bytes into a Stream object.

SetCommonObjectProperties ( CommonObjectProperty commonProperty, CPRPTErrorCode &error ) : void

Set common object properties in order to test whether each of them is read-only.

Private Methods

Method Description
CheckRequirementConflict ( ) : void

To verify if there are conflict settings in SHOULD/MAY configuration file

CleanUpMethod ( ) : void

Test cleanup operation.

GetDestinationMessageHandle ( uint handle, uint &firstMessageHandle, uint &secondMessageHandle ) : void

Get destination message handles.

GetHandles ( ) : void

Get folders, messages and attachments handle.

GetPropertyName ( byte kind ) : PropertyName

Get PropertyName from ptfconfig file.

GetSubfolderIDByName ( uint openedFolderHandle, string folderName ) : ulong

Find a folder ID in the specified folder and with specified display name.

GetTableRowValue ( uint tableHandle, ushort rowCount, PropertyTag properties ) : List

Get the properties' value from the rows of the table.

GetTaggedPropertyTag ( ObjectToOperate obj ) : TaggedPropertyValue

Get TaggedProperty from ptfconfig file.

InitHandle ( ITestSite site ) : void

Initialize the test environment.

InitHandle ( ITestSite site, LogonType logonType ) : void

Initialize the test environment.

InitializeCommonProperties ( ) : void

Initialize dictionary of common properties.

ProcessSingleRop ( ISerializable ropRequest, uint insideObjHandle, IDeserializable &response, byte &rawData, RopResponseType expectedRopResponseType ) : List>

Method which executes single ROP.

ProcessSingleRopWithMutipleServerObjects ( ISerializable ropRequest, List insideObjHandle, IDeserializable &response, byte &rawData, RopResponseType expectedRopResponseType ) : List>

Method which executes single ROP with multiple server objects.

RopCloneStream ( uint sourceHandle, uint destHandle, bool needVerify ) : RopCloneStreamResponse

This ROP creates a new stream object based on the same data as another stream.

RopCommitStream ( uint objHandle, bool needVerify ) : RopCommitStreamResponse

This ROP commits stream operations.

RopCopyProperties ( uint sourceHandle, uint destHandle, byte sourceHandleIndex, byte destHandleIndex, byte wantAsynchronous, byte copyFlags, PropertyTag propertyTags ) : object

RopCopyProperties implementation

RopCopyTo ( uint sourceHandle, uint destHandle, byte sourceHandleIndex, byte destHandleIndex, byte wantAsynchronous, byte wantSubObjects, byte copyFlags, PropertyTag excludedTags ) : object

RopCopyTo implementation

RopCopyToStream ( uint sourceHandle, uint destHandle, byte sourceHandleIndex, byte destHandleIndex, ulong byteCount ) : RopCopyToStreamResponse

This ROP copies a number of bytes from a source stream to a destination stream.

RopCreateAttachment ( uint handle, RopCreateAttachmentResponse &createAttachmentResponse, bool needVerify ) : uint

This ROP creates a new attachment on a message.

RopCreateFolder ( uint handle, RopCreateFolderResponse &createFolderResponse, string displayName, string comment, bool needVerify ) : uint

This ROP creates a new subfolder.

RopCreateMessage ( uint handle, ulong folderId, byte associatedFlag, RopCreateMessageResponse &createMessageResponse, bool needVerify ) : uint

This ROP creates a Message object in a mailbox.

RopDeleteFolder ( uint handle, ulong folderId ) : RopDeleteFolderResponse

This ROP deletes a folder and its contents.

RopDeleteProperties ( uint objHandle, PropertyTag propertyTags, bool needVerify ) : RopDeletePropertiesResponse

RopDeleteProperties implementation

RopDeletePropertiesNoReplicate ( uint objHandle, PropertyTag propertyTags ) : RopDeletePropertiesNoReplicateResponse

RopDeletePropertiesNoReplicate implementation

RopEmptyFolder ( uint handle, byte wantAsynchronous, bool needVerify ) : RopEmptyFolderResponse

This ROP deletes all messages and subfolders from a folder.

RopGetNamesFromPropertyIds ( uint objHandle, PropertyId propertyIds ) : RopGetNamesFromPropertyIdsResponse

RopGetNamesFromPropertyIds implementation

RopGetPropertiesAll ( uint objHandle, ushort propertySizeLimit, ushort wantUnicode ) : RopGetPropertiesAllResponse

RopGetPropertiesAllResponse implementation

RopGetPropertiesList ( uint objHandle ) : RopGetPropertiesListResponse

RopGetPropertiesList implementation

RopGetPropertiesSpecific ( uint objHandle, ushort propertySizeLimit, ushort wantUnicode, PropertyTag propertyTags ) : RopGetPropertiesSpecificResponse

RopGetPropertiesSpecific implementation

RopGetPropertyIdsFromNames ( uint objHandle, byte flags, PropertyName propertyNames, bool needVerify ) : RopGetPropertyIdsFromNamesResponse

RopGetPropertyIdsFromNames implementation

RopGetStreamSize ( uint objHandle, bool needVerify ) : RopGetStreamSizeResponse

This ROP gets the size of a stream.

RopLockRegionStream ( uint objHandle, ulong regionOffset, ulong regionSize, uint lockFlags, bool needVerify ) : RopLockRegionStreamResponse

This ROP locks a specified range of bytes in a stream.

RopLogon ( LogonType logonType, RopLogonResponse &logonResponse, string userDN, bool needVerify ) : uint

This ROP logs on to a private mailbox or public folder.

RopOpenAttachment ( uint handle, uint attachmentId, RopOpenAttachmentResponse &openAttachmentResponse, bool needVerify ) : uint

This ROP opens an attachment of a message.

RopOpenEmbeddedMessage ( uint handle, RopOpenEmbeddedMessageResponse &openEmbeddedMessageResponse, bool needVerify ) : uint

This ROP opens an attachment as a message.

RopOpenFolder ( uint handle, RopOpenFolderResponse &openFolderResponse, ulong folderId, bool needVerify ) : uint

This ROP opens an existing folder in a mailbox.

RopOpenMessage ( uint handle, ulong folderId, ulong messageId, RopOpenMessageResponse &openMessageResponse, bool needVerify ) : uint

This ROP opens an existing message in a mailbox.

RopOpenStream ( uint objHandle, RopOpenStreamResponse &openStreamResponse, PropertyTag tag, byte openMode, bool needVerify ) : uint

This ROP opens a property for streaming access.

RopProgress ( uint objHandle, byte wantCancel ) : object

RopProgress implementation

RopQueryNamedProperties ( uint objHandle, byte queryFlags, byte hasGuid, byte propertyGuid ) : RopQueryNamedPropertiesResponse

The method is used to query an object for all the named properties.

RopReadStream ( uint objHandle, ushort byteCount, uint maximumByteCount, bool needVerify ) : RopReadStreamResponse

This ROP reads bytes from a stream.

RopRelease ( uint handle ) : void

This ROP releases all resources associated with a server object.

RopSaveChangesAttachment ( uint handle, bool needVerify ) : RopSaveChangesAttachmentResponse

This ROP commits the changes made to an attachment.

RopSaveChangesMessage ( uint handle, bool needVerify ) : RopSaveChangesMessageResponse

This ROP commits the changes made to a message.

RopSeekStream ( uint objHandle, byte origin, long offset, bool needVerify ) : RopSeekStreamResponse

This ROP seeks to a specific offset within a stream.

RopSetProperties ( uint objHandle, TaggedPropertyValue taggedPropertyValueArray, bool needVerify ) : RopSetPropertiesResponse

RopSetProperties implementation

RopSetPropertiesNoReplicate ( uint objHandle, TaggedPropertyValue taggedPropertyValueArray ) : RopSetPropertiesNoReplicateResponse

RopSetPropertiesNoReplicate implementation

RopSetStreamSize ( uint objHandle, ulong streamSize, bool needVerify ) : RopSetStreamSizeResponse

This ROP sets the size of a stream.

RopUnlockRegionStream ( uint objHandle, ulong regionOffset, ulong regionSize, uint lockFlags ) : RopUnlockRegionStreamResponse

This ROP unlocks a specified range of bytes in a stream.

RopWriteAndCommitStream ( uint objHandle, string writeData, bool needVerify ) : RopWriteStreamResponse

This ROP writes bytes to a stream and commits the stream.

RopWriteStream ( uint objHandle, string writeData, bool needVerify ) : RopWriteStreamResponse

This ROP writes bytes to a stream.

RpcConnect ( LogonType logonType ) : bool

Connect to the server for RPC calling.

RpcDisconnect ( ) : bool

Disconnect from the server.

SearchProperty ( uint handle, ushort propertyId ) : TaggedPropertyValue

Search TaggedPropertyValue by property id.

Session2GetPropertyData ( string objKey, PropertyTag propertyTag, bool &isPropertyFound ) : byte[]

Obtain Property value via session2.

Session2ReadStream ( string objKey, PropertyTag propertyTag, bool &isPropertyFound ) : byte[]

Session get property value via RopReadStream.

VerifyCommonProperties ( PropertyTag propertyTag, RopGetPropertiesSpecificResponse ropGetPropertiesSecificResponse, ServerObjectType objectType ) : void

Verify Common Object properties related requirements.

VerifyCommonPropertiesInOXCDATA ( PropertyTag propertyTag, RopGetPropertiesSpecificResponse ropGetPropertiesSpecificResponse ) : void

Verify the Common Properties related requirements in MS-OXCDATA.

VerifyMAPITransport ( ) : void

Verify MAPIHTTP transport.

VerifyPropertyProblemSturctureInCDATA ( ) : void

Verify the PropertyProblem structure defined in MS-OXCDATA.

VerifyPropertyTagInCDATA ( PropertyTag propertyTag ) : void

Verify the propertyTag structure with MS-OXCDATA.

VerifyPropertyValueAfterPropertyDeleted ( byte propertyValue, bool isRopDeletePropertiesMethod ) : void

Verify whether the property value is NotFound when querying this property after deleted.

VerifyRopCloneStream ( RopCloneStreamResponse ropCloneStreamResponse ) : void

Verify the RopCloneStream operation related requirements.

VerifyRopCommitStream ( RopCommitStreamResponse ropCommitStreamResponse ) : void

Verify the RopCommitStream operation related requirements.

VerifyRopCopyProperties ( RopCopyPropertiesResponse ropCopyPropertiesResponse, ServerObjectType objectType, CopyFlags copyFlags, bool isPropertyFound ) : void

Verify the RopCopyProperties operation related requirements.

VerifyRopCopyTo ( RopCopyToResponse ropCopyToResponse, CopyToCondition copyToCondition, ServerObjectType objectType, CopyFlags copyFlags ) : void

Verify the RopCopyTo operation related requirements.

VerifyRopCopyToExcludeElement ( bool isExcludedPropertyCopied ) : void

Verify if RopCopyTo method copies the excluded value.

VerifyRopCopyToForPublicFolder ( RopCopyToResponse ropCopyToResponse ) : void

Verify the RopCopyTo operation about public folder related requirements.

VerifyRopCopyToStream ( RopCopyToStreamResponse ropCopyToStreamResponse, bool isDestinationExist, bool isCopyRightDataCount, bool destHandleIsRight ) : void

Verify the RopCopyToStream operation related requirements.

VerifyRopDeleteProperties ( RopDeletePropertiesResponse ropDeletePropertiesResponse, ServerObjectType objectType ) : void

Verify the RopDeleteProperties operation related requirements.

VerifyRopDeletePropertiesNoReplicate ( RopDeletePropertiesNoReplicateResponse ropDeletePropertiesNoReplicateResponse, ServerObjectType objectType ) : void

Verify the RopDeletePropertiesNoReplicate operation related requirements.

VerifyRopGetNamesFromPropertyIds ( ushort propertyIdCount, PropertyId propertyIds, RopGetNamesFromPropertyIdsResponse ropGetNamesFromPropertyIdsResponse, ServerObjectType objectType ) : void

Verify the RopGetNamesFromPropertyIds operation related requirements.

VerifyRopGetPropertiesAll ( RopGetPropertiesAllResponse ropGetPropertiesAllResponse, ServerObjectType objectType, bool isPropertySizeLimitZero, bool isPropertyLagerThanLimit, bool isUnicode, bool isValueContainsNotEnoughMemory ) : void

Verify the RopGetPropertiesAll operation related requirements.

VerifyRopGetPropertiesList ( RopGetPropertiesListResponse ropGetPropertiesListResponse, ServerObjectType objectType ) : void

Verify the RopGetPropertiesList operation related requirements.

VerifyRopGetPropertiesSpecific ( RopGetPropertiesSpecificResponse ropGetPropertiesSpecificResponse, ServerObjectType objectType, bool isOrdered, bool isPropertySizeLimitZero, bool isPropertyLagerThanLimit, bool isValueContainsNotEnoughMemory ) : void

Verify the RopGetPropertiesSpecific operation related requirements.

VerifyRopGetPropertiesSpecificForTaggedProperties ( RopGetPropertiesSpecificResponse ropGetPropertiesSpecificResponse ) : void

Verify the RopGetPropertiesSpecific operation related requirements for tagged properties.

VerifyRopGetPropertiesSpecificForWantUnicode ( RopGetPropertiesSpecificResponse ropGetPropertiesSpecificResponse, bool isUnicode ) : void

Verify the RopGetPropertiesSpecific operation related requirements for WantUnicode.

VerifyRopGetPropertyIdsFromNames ( ushort propertyNameCount, PropertyName propertyNames, byte flags, RopGetPropertyIdsFromNamesResponse ropGetPropertyIdsFromNamesResponse, bool isOrdered, ServerObjectType objectType, bool isPropertyNameExisting, bool isNamesAndIdsMapping ) : void

Verify the RopCopyTo operation related requirements.

VerifyRopGetStreamSize ( RopGetStreamSizeResponse ropGetStreamSizeResponse ) : void

Verify the RopGetStreamSize operation related requirements.

VerifyRopLockRegionStream ( RopLockRegionStreamResponse ropLockRegionStreamResponse ) : void

Verify the RopLockRegionStream operation related requirements.

VerifyRopOpenStream ( RopOpenStreamResponse ropOpenStreamResponse, ServerObjectType objectType, bool isPropertyTagExist, OpenModeFlags openFlag ) : void

Verify the RopOpenStream operation related requirements.

VerifyRopQueryNamedProperties ( QueryFlags queryFlags, byte propertyGuid, RopQueryNamedPropertiesResponse ropQueryNamedPropertiesResopnse, ServerObjectType objectType, bool isOrdered ) : void

Verify the RopQueryNamedProperties operation related requirements.

VerifyRopReadStream ( RopReadStreamResponse ropReadStreamResponse, bool isReadingFailed ) : void

Verify the RopReadStream operation related requirements.

VerifyRopReadStreamWithLimitedSize ( RopReadStreamResponse readStreamResponse, ushort byteCount, uint maxByteCount ) : void

Verify the RopReadStream operation related requirements.

VerifyRopSeekStream ( RopSeekStreamResponse ropSeekStreamResponse, SeekStreamCondition seekStereamCondition ) : void

Verify the RopSeekStream operation related requirements.

VerifyRopSetProperties ( RopSetPropertiesResponse ropSetPropertiesResponse, ServerObjectType objectType ) : void

Verify the RopSetProperties operation related requirements.

VerifyRopSetPropertiesNoReplicate ( RopSetPropertiesNoReplicateResponse ropSetPropertiesNoReplicateResponse, ServerObjectType objectType ) : void

Verify the RopSetPropertiesNoReplicate operation related requirements.

VerifyRopSetStreamSize ( RopSetStreamSizeResponse ropSetStreamSizeResponse, bool isStreamSizeEqualSetSize ) : void

Verify the RopSetStreamSize operation related requirements.

VerifyRopUnlockRegionStream ( RopUnlockRegionStreamResponse ropUnlockRegionStreamResponse ) : void

Verify the RopUnlockRegionStream operation related requirements.

VerifyRopWriteAndCommitStream ( RopWriteStreamResponse ropWriteAndCommitStreamResponse, bool isWriteCorrectDataToStream ) : void

Verify the RopWriteAndCommitStream operation related requirements.

VerifyRopWriteStream ( RopWriteStreamResponse ropWriteStreamResponse, OpenModeFlags openModeFlags, string writeData, bool canBeRetrieval, bool isChangedInDB, bool forErrorCode, bool isWriteSizeElementRight ) : void

Verify the RopWriteStream operation related requirements.

VerifyRopWriteStreamWithCreatePermission ( RopWriteStreamResponse writeStreamResponse ) : void

Verify the client has read/write access when open property as stream with Create OpenModeFlags.

VerifyTypeOfCommonPropertiesInOXPROPS ( PropertyTag propertyTag, RopGetPropertiesSpecificResponse ropGetPropertiesSpecificResponse ) : void

Verify the type of Common Object Properties in MS-OXPROPS.

Method Details

CheckMAPIHTTPTransportSupported() public method

This method is used to check whether MAPIHTTP transport is supported by SUT.
public CheckMAPIHTTPTransportSupported ( bool &isSupported ) : void
isSupported bool The transport is supported or not.
return void

CheckRequirementEnabled() public method

Checks if the requirement is enabled in SHOULD/MAY configuration file.
public CheckRequirementEnabled ( int rsid, bool &enabled ) : void
rsid int Requirement ID
enabled bool True represents the requirement is enabled; false represents the requirement is disabled.
return void

GetCommonObjectProperties() public method

Get common object properties in order to test their type.
public GetCommonObjectProperties ( CommonObjectProperty commonProperty ) : void
commonProperty CommonObjectProperty The nine Common Object Properties defined in section 2.2.1.
return void

GetObject() public method

This method is used to get object for different object types.
public GetObject ( ServerObjectType objType, ObjectToOperate objToOperate ) : void
objType ServerObjectType Specifies the object type.
objToOperate ObjectToOperate Specifies which objects to operate.
return void

Initialize() public method

Initialize the adapter.
public Initialize ( ITestSite testSite ) : void
testSite ITestSite Test site.
return void

InitializeMailBox() public method

This method is used to initialize the test environment for private mailbox.
public InitializeMailBox ( ) : void
return void

InitializePublicFolder() public method

This method is used to initialize the test environment for public folders.
public InitializePublicFolder ( ) : void
return void

Reset() public method

Reset the adapter. Adapter will disconnect with server via calling RPC method. At the same time, the ITestSite context will be reseated.
public Reset ( ) : void
return void

RopCloneStreamMethod() public method

This method is used to create a new Stream object that is a clone of another Stream object.
public RopCloneStreamMethod ( ) : void
return void

RopCommitStreamMethod() public method

This method is used to ensure that any changes made to a Stream object are persisted in storage for a Folder object.
public RopCommitStreamMethod ( OpenModeFlags openFlag, bool &isPropertyValueChanged ) : void
openFlag OpenModeFlags Indicates the OpenModeFlags when stream is opened.
isPropertyValueChanged bool Indicates whether property value is changed.
return void

RopCopyPropertiesMethod() public method

This method is used to copy or move one or more properties from one object to another.
public RopCopyPropertiesMethod ( CopyFlags copyFlag, bool isWantAsynchronousZero, bool isDestinationExist, bool &isPropertiesDeleted, bool &isChangedInDB, bool &isOverwriteDestination, bool &isReturnedRopProgress, CPRPTErrorCode &error ) : void
copyFlag CopyFlags Specifies the CopyFlags in the call request.
isWantAsynchronousZero bool Indicates whether WantAsynchronous parameter in call request is zero.
isDestinationExist bool Indicates whether destination object is exist for [RopCopyProperties]
isPropertiesDeleted bool If CopyFlags is set to Move,Source object will be deleted after copy to.
isChangedInDB bool Indicates whether the change is submit to DB.
isOverwriteDestination bool If CopyFlags is set to NoOverWrite,Destination should not be overwritten.
isReturnedRopProgress bool If this ROP is performed Asynchronously,RopProgress response returned /// instead of RopCopyProperties response.
error CPRPTErrorCode If destination object is not exist,NullDestinationObject error will be returned.
return void

RopCopyToForPublicFolder() public method

This method is used to copy or move properties from a source object to a destination object on public folder.
public RopCopyToForPublicFolder ( ) : void
return void

RopCopyToMethod() public method

This method is used to copy or move all but a specified few properties from a source object to a destination object.
public RopCopyToMethod ( CopyFlags copyFlag, bool isWantAsynchronousZero, bool isWantSubObjectsZero, bool isDestinationExist, bool &isPropertiesDeleted, bool &isSubObjectCopied, bool &isOverwriteDestination, bool &isReturnedRopProgress, bool &isChangedInDB, CPRPTErrorCode &error ) : void
copyFlag CopyFlags Specifies the CopyFlags in the call request.
isWantAsynchronousZero bool Indicates whether WantAsynchronous parameter in call request is zero.
isWantSubObjectsZero bool Indicates whether WantSubObjects parameter in call request is zero.
isDestinationExist bool Indicates whether destination object is exist for [RopCopyTo].
isPropertiesDeleted bool If CopyFlags is set to Move,Source object will be deleted after copy to.
isSubObjectCopied bool Indicates whether sub-object properties is also be copied.
isOverwriteDestination bool If CopyFlags is set to NoOverWrite,Destination should not be overwritten.
isReturnedRopProgress bool If this ROP is performed Asynchronously,RopProgress response /// returned instead of RopCopyProperties response.
isChangedInDB bool Indicates whether destination is changed in database.
error CPRPTErrorCode If destination object is not exist,NullDestinationObject error will be returned.
return void

RopCopyToMethodForErrorCodeTable() public method

This method is used to copy or move properties from a source object to a destination object with error code returned.
public RopCopyToMethodForErrorCodeTable ( CopyToCondition condition ) : void
condition CopyToCondition Specifies a special scenario of RopCopyTo.
return void

RopCopyToStreamMethod() public method

This method is used to copy a specified number of bytes from the current seek pointer in the source stream to the current seek pointer in the destination stream.
public RopCopyToStreamMethod ( bool isDestinationExist, bool &isReadWriteSuccess, CPRPTErrorCode &error ) : void
isDestinationExist bool Specified the whether the destination existed.
isReadWriteSuccess bool When call success:The server MUST read the number of BYTES /// requested from the source Stream object, and write those bytes into the destination Stream object .
error CPRPTErrorCode If Destination object does not exist .Expect DestinationNullObject error.
return void

RopDeletePropertiesMethod() public method

This method is used to remove the specified properties from an object.
public RopDeletePropertiesMethod ( bool &isNoValidValueReturnedForDeletedProperties, bool &isChangedInDB ) : void
isNoValidValueReturnedForDeletedProperties bool /// If the server returns success, it MUST NOT have a valid value to return to a client that asks for the value of this property.
isChangedInDB bool /// Indicates whether the modified value is submit to DB For Message and Attachment object, it require another /// ROP for submit DB.For Logon and Folder object, it DO NOT need any other ROPs for submit.
return void

RopDeletePropertiesNoReplicateMethod() public method

This method is used to delete property values from an object without invoking replication.
public RopDeletePropertiesNoReplicateMethod ( bool &isSameWithDeleteProperties, bool &isChangedInDB ) : void
isSameWithDeleteProperties bool Indicates whether result is same as RopDeleteProperties.
isChangedInDB bool Indicates the value is changed in database or not.
return void

RopGetNamesFromPropertyIdsMethod() public method

This method is used to map concrete property IDs to abstract, client-defined named properties.
public RopGetNamesFromPropertyIdsMethod ( PropertyIdType propertyIdType ) : void
propertyIdType PropertyIdType Specifies different PropertyId type.
return void

RopGetPropertiesAllMethod() public method

This method is used to query for and return all of the property tags and values of properties that have been set.
public RopGetPropertiesAllMethod ( bool isPropertySizeLimitZero, bool isPropertyLagerThanLimit, bool isUnicode, bool &isValueContainsNotEnoughMemory ) : void
isPropertySizeLimitZero bool Indicates whether PropertySizeLimit parameter is zero.
isPropertyLagerThanLimit bool Indicates whether request properties larger than limit /// When PropertySizeLimit is non-zero, Indicates whether request properties larger than PropertySizeLimit /// When PropertySizeLimit is zero, Indicates whether request properties larger than size of response.
isUnicode bool Indicates whether the requested property is encoded in Unicode format in response buffer
isValueContainsNotEnoughMemory bool Indicates whether returned value contains NotEnoughMemory error when the request properties are too large.
return void

RopGetPropertiesListMethod() public method

This method is used to query for and returns all of the property tags for properties that have been set on an object.
public RopGetPropertiesListMethod ( ) : void
return void

RopGetPropertiesSpecificForTaggedProperties() public method

This method is used to query for and return the values of properties specified in the PropertyTags field, which is related with tagged properties.
public RopGetPropertiesSpecificForTaggedProperties ( ) : void
return void

RopGetPropertiesSpecificForWantUnicode() public method

This method is used to query for and return the values of properties specified in the PropertyTags field, which is related with unicode format.
public RopGetPropertiesSpecificForWantUnicode ( bool isUnicode ) : void
isUnicode bool Indicates whether the requested property is encoded in Unicode format in response buffer
return void

RopGetPropertiesSpecificMethod() public method

This method is used to query for and return the values of properties specified in the PropertyTags field.
public RopGetPropertiesSpecificMethod ( bool isTestOrder, bool isPropertySizeLimitZero, bool isPropertyLagerThanLimit, bool &isValueContainsNotEnoughMemory ) : void
isTestOrder bool Indicates whether to test returned PropertyNames order.
isPropertySizeLimitZero bool Indicates whether PropertySizeLimit parameter is zero.
isPropertyLagerThanLimit bool Indicates whether request properties larger than limit /// When PropertySizeLimit is non-zero, Indicates whether request properties larger than PropertySizeLimit /// When PropertySizeLimit is zero, Indicates whether request properties larger than size of response.
isValueContainsNotEnoughMemory bool Indicates whether returned value contains NotEnoughMemory error when the request properties are too large.
return void

RopGetPropertyIdsFromNamesMethod() public method

This method is used to map abstract, client-defined named properties to concrete 16-bit property IDs.
public RopGetPropertyIdsFromNamesMethod ( bool isTestOrder, bool isCreateFlagSet, bool isPropertyNameExisting, SpecificPropertyName specialPropertyName, bool &isCreatedEntryReturned, CPRPTErrorCode &error ) : void
isTestOrder bool Indicates whether to test returned PropertyNames order.
isCreateFlagSet bool Indicates whether the "Create" Flags in request parameter is set.
isPropertyNameExisting bool Indicates whether PropertyName is existing in object mapping.
specialPropertyName SpecificPropertyName Specifies PropertyName of request parameter
isCreatedEntryReturned bool If Create Flags is set: If set, indicates that the server MUST create new /// entries for any name parameters that are not found in the existing mapping set, and return existing entries for any /// name parameters that are found in the existing mapping set.
error CPRPTErrorCode Specifies the ErrorCode when server reached limit.
return void

RopGetStreamSizeMethod() public method

This method is used to retrieve the size of the stream.
public RopGetStreamSizeMethod ( ) : void
return void

RopLockRegionStreamMethod() public method

This method is used to lock a specified range of bytes in a Stream object.
public RopLockRegionStreamMethod ( PreStateBeforeLock preState, CPRPTErrorCode &error ) : void
preState PreStateBeforeLock Specifies the pre-state before call [RopLockRegionStream]
error CPRPTErrorCode Return error /// 1. If there are previous locks that are not expired, the server MUST return an AccessDenied error. /// 2. If a session with an expired lock calls any ROP for this Stream object that would encounter the locked region, /// the server MUST return a NetworkError.
return void

RopOpenStreamMethod() public method

This method is used to open a property as a Stream object, enabling the client to perform various streaming operations on the property.
public RopOpenStreamMethod ( ObjectToOperate obj, OpenModeFlags openFlag, bool isPropertyTagExist, bool &isStreamSizeEqualToStream, CPRPTErrorCode &error ) : void
obj ObjectToOperate Specifies which object will be operated.
openFlag OpenModeFlags Specifies OpenModeFlags for [RopOpenStream].
isPropertyTagExist bool Indicates whether request property exist.
isStreamSizeEqualToStream bool Indicates whether StreamSize in response is /// the same with the current number of BYTES in the stream.
error CPRPTErrorCode If the property tag does not exist for the object and "Create" /// is not specified in OpenModeFlags, NotFound error should be returned.
return void

RopOpenStreamWithDifferentPropertyType() public method

This method is used to open a different type of properties as a Stream object, enabling the client to perform various streaming operations on the property.
public RopOpenStreamWithDifferentPropertyType ( ObjectToOperate obj, PropertyTypeName propertyType, CPRPTErrorCode &error ) : void
obj ObjectToOperate Specifies which object will be operated.
propertyType PropertyTypeName Specifies which type of property will be operated.
error CPRPTErrorCode Returned error code.
return void

RopProgressMethod() public method

This method is used to report the progress status of an asynchronous operation.
public RopProgressMethod ( bool isOtherRopSent, bool isWantCancel, bool &isOriginalOpsResponse, bool &isOtherRopResponse ) : void
isOtherRopSent bool Indicates whether other ROP is sent.
isWantCancel bool Indicates whether WantCancel parameter is set to non-zero,any /// non-zero value means client want cancel the original operation.
isOriginalOpsResponse bool If original asynchronous ROPs are done or canceled, /// Response should be original ROPs response.Otherwise, it should be RopProgress response.
isOtherRopResponse bool indicates the other ROP's response is returned.If the client sends a /// ROP other than RopProgress to the server with the same logon before the asynchronous operation is /// complete the server MUST abort the asynchronous operation and respond to the new ROP.
return void

RopQueryNamedPropertiesMethod() public method

The method is used to query an object for all the named properties.
public RopQueryNamedPropertiesMethod ( QueryFlags queryFlags, bool hasGuid, bool &isKind0x01Returned, bool &isKind0x00Returned, bool &isNamedPropertyGuidReturned ) : void
queryFlags QueryFlags Specifies QueryFlags parameter in request.
hasGuid bool Indicates whether HasGuid is zero, /// If the HasGUID field is non-zero then the PropertyGUID field MUST be included in the request. /// If no PropertyGUID is specified, then properties from any GUID MUST be returned in the results.
isKind0x01Returned bool True if the named properties of the response with the Kind field /// ([MS-OXCDATA] section 2.6.1) set to 0x1 was returned.
isKind0x00Returned bool True if the named properties of the response with the Kind field /// ([MS-OXCDATA] section 2.6.1) set to 0x0 was returned.
isNamedPropertyGuidReturned bool True if the named properties with a GUID field ([MS-OXCDATA] /// section 2.6.1) value that does not match the value of the PropertyGUID field was returned.
return void

RopReadStreamMethod() public method

This method is used to read the stream of bytes from a Stream object.
public RopReadStreamMethod ( bool isReadingFailed ) : void
isReadingFailed bool Indicates whether reading stream get failure. E.g. object handle is not stream.
return void

RopReadStreamWithLimitedSize() public method

This method is used to read the stream of limited size bytes from a Stream object.
public RopReadStreamWithLimitedSize ( ushort byteCount, uint maxByteCount ) : void
byteCount ushort Indicates the size to be read.
maxByteCount uint If byteCount is 0xBABE, use MaximumByteCount to determine the size to be read.
return void

RopReleaseMethod() public method

This method is used to release all resources associated with a Server object. The client uses RopRelease ([MS-OXCROPS] section 2.2.14.3) after it is done with the Stream object.
public RopReleaseMethod ( ObjectToOperate obj, bool &isPropertyValueChanged ) : void
obj ObjectToOperate Specifies which object will be operated.
isPropertyValueChanged bool For Folder Object, this ROP should not change the value /// in stream after RopWriteStream.For non-Folder Object, this ROP should change the value.
return void

RopReleaseMethodNoVerify() public method

This method is used to release all resources associated with a Server object. The client uses RopRelease ([MS-OXCROPS] section 2.2.14.3) after it is done with the Stream object.
public RopReleaseMethodNoVerify ( ObjectToOperate obj ) : void
obj ObjectToOperate Specifies which object will be operated.
return void

RopSaveChangesAttachmentMethod() public method

This method is used to commit the changes made to an attachment.
public RopSaveChangesAttachmentMethod ( bool &isChangedInDB ) : void
isChangedInDB bool Indicates whether changes of Message object submit to database /// when [RopSetProperties] or [RopDeleteProperties].
return void

RopSaveChangesMessageMethod() public method

This method is used to commit the changes made to a message.
public RopSaveChangesMessageMethod ( bool &isChangedInDB ) : void
isChangedInDB bool Indicates whether changes of Message object submit to database /// when [RopSetProperties] or [RopDeleteProperties].
return void

RopSeekStreamMethod() public method

This method is used to set the seek pointer to a new location, which is relative to the beginning of the stream, the end of the stream, or the location of the current seek pointer.
public RopSeekStreamMethod ( SeekStreamCondition condition, bool &isStreamExtended, CPRPTErrorCode &error ) : void
condition SeekStreamCondition Specifies particular scenario of RopSeekStream.
isStreamExtended bool Indicates whether a stream object is extended and zero filled to the new seek location.
error CPRPTErrorCode Returned error code.
return void

RopSetPropertiesMethod() public method

This method is used to update the specified properties on an object.
public RopSetPropertiesMethod ( bool &isModifiedValueReturned, bool &isChangedInDB ) : void
isModifiedValueReturned bool Indicates whether the modified value of a property can be returned use a same handle.
isChangedInDB bool Indicates whether the modified value is submit to DB. /// For Message and Attachment object, it require another ROP for submit DB. /// For Logon and Folder object, it DO NOT need any other ROPs for submit.
return void

RopSetPropertiesNoReplicateMethod() public method

This method is used to set property values for an object without invoking replication.
public RopSetPropertiesNoReplicateMethod ( bool &isSameWithSetProperties ) : void
isSameWithSetProperties bool Indicates whether result is same as RopSetProperties.
return void

RopSetStreamSizeMethod() public method

This method is used to set the size of a stream.
public RopSetStreamSizeMethod ( bool isSizeIncreased, bool &isExtendedValueZero, bool &isLost, bool &isIncrease ) : void
isSizeIncreased bool Indicates the new size is increased or decreased.
isExtendedValueZero bool /// If the size of the stream is increased, then value of the extended stream MUST be zero.
isLost bool /// If the size of the stream is decreased, the information that extends past the end of the new size is lost.
isIncrease bool If the size of the stream is increased, set this value to true
return void

RopUnlockRegionStreamMethod() public method

This method is used to unlock a specified range of bytes in a Stream object.
public RopUnlockRegionStreamMethod ( bool isPreviousLockExists ) : void
isPreviousLockExists bool Indicates whether a previous lock exists and not owned by this session. /// If there are previous locks that are not owned by the session calling the ROP, the server MUST leave them unmodified.
return void

RopWriteAndCommitStreamMethod() public method

This method is used to write bytes to a stream and commits the stream.
public RopWriteAndCommitStreamMethod ( CPRPTErrorCode &error ) : void
error CPRPTErrorCode This ROP MUST NOT be used on Stream objects opened on /// properties on Folder objects which means it should be failed against Folder object.
return void

RopWriteStreamMethod() public method

This method is used to write the stream of bytes into a Stream object.
public RopWriteStreamMethod ( OpenModeFlags openFlag, bool isExceedMax, CPRPTErrorCode &error ) : void
openFlag OpenModeFlags Specifies the OpenModeFlags of the stream.
isExceedMax bool Indicates whether the write will exceed the maximum stream size.
error CPRPTErrorCode Specifies the ErrorCode when WriteStream failed:STG_E_ACCESSDENIED /// 0x80030005 Write access is denied.When stream is opened with ReadOnly flag.
return void

SetCommonObjectProperties() public method

Set common object properties in order to test whether each of them is read-only.
public SetCommonObjectProperties ( CommonObjectProperty commonProperty, CPRPTErrorCode &error ) : void
commonProperty CommonObjectProperty The nine Common Object Properties defined in section 2.2.1
error CPRPTErrorCode When a property is specified as "read-only for the client", the server MUST /// return an error and ignore any request to change the value of that property.
return void