public void MSOXCROPS_S06_TC05_TestRopsSetProperties()
{
this.CheckTransportIsSupported();
this.cropsAdapter.RpcConnect(
Common.GetConfigurationPropertyValue("SutComputerName", this.Site),
ConnectionType.PrivateMailboxServer,
Common.GetConfigurationPropertyValue("UserEssdn", this.Site),
Common.GetConfigurationPropertyValue("Domain", this.Site),
Common.GetConfigurationPropertyValue("AdminUserName", this.Site),
Common.GetConfigurationPropertyValue("PassWord", this.Site));
// Step 1: Preparations-Create message and get the created message handle.
#region Preparations
// Log on to a private mailbox.
RopLogonResponse logonResponse = Logon(LogonType.Mailbox, this.userDN, out inputObjHandle);
// Add the debug information
Site.Log.Add(LogEntryKind.Debug, "Step 1:Call GetCreatedMessageHandle method to create message and get the created message handle.");
// Call GetCreatedMessageHandle method to create message and get the created message handle.
uint messageHandle = GetCreatedMessageHandle(logonResponse.FolderIds[4], inputObjHandle);
int size = 0;
TaggedPropertyValue[] taggedPropertyValueArray = this.CreateMessageTaggedPropertyValueArray(out size);
#endregion
// Step 2: Send the RopSetProperties request and verify the success response.
#region RopSetProperties success response
RopSetPropertiesRequest setPropertiesRequest = new RopSetPropertiesRequest();
RopSetPropertiesResponse setPropertiesResponse;
setPropertiesRequest.RopId = (byte)RopId.RopSetProperties;
setPropertiesRequest.LogonId = TestSuiteBase.LogonId;
setPropertiesRequest.InputHandleIndex = TestSuiteBase.InputHandleIndex0;
setPropertiesRequest.PropertyValueSize = (ushort)(size + 2);
setPropertiesRequest.PropertyValueCount = (ushort)taggedPropertyValueArray.Length;
setPropertiesRequest.PropertyValues = taggedPropertyValueArray;
// Add the debug information
Site.Log.Add(LogEntryKind.Debug, "Step 2: Begin to send the RopSetProperties request.");
// Send the RopSetProperties request and verify the success response.
this.responseSOHs = cropsAdapter.ProcessSingleRop(
setPropertiesRequest,
messageHandle,
ref this.response,
ref this.rawData,
RopResponseType.SuccessResponse);
setPropertiesResponse = (RopSetPropertiesResponse)response;
Site.Assert.AreEqual<uint>(
TestSuiteBase.SuccessReturnValue,
setPropertiesResponse.ReturnValue,
"if ROP succeeds, ReturnValue of its response will be 0 (success)");
#endregion
// Step 3: Send the RopSetProperties request and verify the failure response.
#region RopSetProperties failure response
setPropertiesRequest.InputHandleIndex = TestSuiteBase.InputHandleIndex1;
// Add the debug information
Site.Log.Add(LogEntryKind.Debug, "Step 3: Begin to send the RopSetProperties request.");
this.responseSOHs = cropsAdapter.ProcessSingleRop(
setPropertiesRequest,
messageHandle,
ref this.response,
ref this.rawData,
RopResponseType.FailureResponse);
setPropertiesResponse = (RopSetPropertiesResponse)response;
Site.Assert.AreNotEqual<uint>(
TestSuiteBase.SuccessReturnValue,
setPropertiesResponse.ReturnValue,
"if ROP failure, ReturnValue of its response will not be 0 (success)");
Site.Assert.AreNotEqual<uint>(
MS_OXCROPSAdapter.ReturnValueForRopQueryNamedProperties,
setPropertiesResponse.ReturnValue,
"if ROP failure, ReturnValue of its response will not be 0x00040380 (success)");
#endregion
// Step 4: Send the RopSetPropertiesNoReplicate request and verify the success response.
#region RopSetPropertiesNoReplicate success response
RopSetPropertiesNoReplicateRequest setPropertiesNoReplicateRequest = new RopSetPropertiesNoReplicateRequest();
RopSetPropertiesNoReplicateResponse setPropertiesNoReplicateResponse;
setPropertiesNoReplicateRequest.RopId = (byte)RopId.RopSetPropertiesNoReplicate;
setPropertiesNoReplicateRequest.LogonId = TestSuiteBase.LogonId;
setPropertiesNoReplicateRequest.InputHandleIndex = TestSuiteBase.InputHandleIndex0;
setPropertiesNoReplicateRequest.PropertyValueSize = (ushort)(size + 2);
setPropertiesNoReplicateRequest.PropertyValueCount = (ushort)taggedPropertyValueArray.Length;
setPropertiesNoReplicateRequest.PropertyValues = taggedPropertyValueArray;
// Add the debug information
Site.Log.Add(LogEntryKind.Debug, "Step 4: Begin to send the RopSetPropertiesNoReplicate request.");
// Send the RopSetPropertiesNoReplicate request and verify the success response.
this.responseSOHs = cropsAdapter.ProcessSingleRop(
setPropertiesNoReplicateRequest,
messageHandle,
ref this.response,
ref this.rawData,
RopResponseType.SuccessResponse);
setPropertiesNoReplicateResponse = (RopSetPropertiesNoReplicateResponse)response;
Site.Assert.AreEqual<uint>(
TestSuiteBase.SuccessReturnValue,
setPropertiesNoReplicateResponse.ReturnValue,
"If ROP succeeds, the ReturnValue of its response is 0(success).");
#endregion
// Step 5: Send the RopSetPropertiesNoReplicate request and verify the failure response.
#region RopSetPropertiesNoReplicate failure response
setPropertiesNoReplicateRequest.InputHandleIndex = TestSuiteBase.InputHandleIndex1;
// Add the debug information
Site.Log.Add(LogEntryKind.Debug, "Step 5: Begin to send the RopSetPropertiesNoReplicate request.");
// Send the RopSetPropertiesNoReplicate request and verify the failure response.
this.responseSOHs = cropsAdapter.ProcessSingleRop(
setPropertiesNoReplicateRequest,
messageHandle,
ref this.response,
ref this.rawData,
RopResponseType.FailureResponse);
setPropertiesNoReplicateResponse = (RopSetPropertiesNoReplicateResponse)response;
Site.Assert.AreNotEqual<uint>(
TestSuiteBase.SuccessReturnValue,
setPropertiesNoReplicateResponse.ReturnValue,
"If ROP failure, the ReturnValue of its response is not 0(success).");
#endregion
}