public void MSWOPI_S17_TC18_Lock_Fail404()
{
// Get the file URL.
string fileUrl = this.AddFileToSUT();
// Get the WOPI URL.
string wopiTargetFileUrl = WopiSutManageCodeControlAdapter.GetWOPIRootResourceUrl(fileUrl, WOPIRootResourceUrlType.FileLevel, TokenAndRequestUrlHelper.DefaultUserName, TokenAndRequestUrlHelper.DefaultPassword, TokenAndRequestUrlHelper.DefaultDomain);
// Get the common header.
WebHeaderCollection commonHeaders = HeadersHelper.GetCommonHeaders(wopiTargetFileUrl);
int statusCode = 0;
// Delete the file.
WopiAdapter.DeleteFile(wopiTargetFileUrl, commonHeaders);
// If the file has been deleted successfully by calling DeleteFile operation, remove it from the clean up process.
this.ExcludeFileFromTheCleanUpProcess(fileUrl);
// Get the common header.
commonHeaders = HeadersHelper.GetCommonHeaders(wopiTargetFileUrl);
bool lockSuccessfully = false;
string lockIdentifierValue = Guid.NewGuid().ToString("N");
try
{
try
{
// Take a lock for editing a file.
WOPIHttpResponse httpWebResponseForLock = WopiAdapter.Lock(wopiTargetFileUrl, commonHeaders, lockIdentifierValue);
statusCode = httpWebResponseForLock.StatusCode;
lockSuccessfully = true;
}
catch (WebException webEx)
{
HttpWebResponse errorResponse = this.GetErrorResponseFromWebException(webEx);
statusCode = this.GetStatusCodeFromHTTPResponse(errorResponse);
}
// Verify MS-WOPI requirement: MS-WOPI_R407
this.Site.CaptureRequirementIfAreEqual(
404,
statusCode,
407,
@"[In Lock] Status code ""404"" means ""File unknown/User unauthorized"".");
}
finally
{
if (lockSuccessfully)
{
commonHeaders = HeadersHelper.GetCommonHeaders(wopiTargetFileUrl);
WopiAdapter.UnLock(wopiTargetFileUrl, commonHeaders, lockIdentifierValue);
}
}
}