Microsoft.Protocols.TestSuites.MS_WOPI.MS_WOPI_S17_FileLevelItems.MSWOPI_S17_TC18_Lock_Fail404 C# (CSharp) Method

MSWOPI_S17_TC18_Lock_Fail404() private method

private MSWOPI_S17_TC18_Lock_Fail404 ( ) : void
return void
        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);
                }
            }
        }