public void MSFSSHTTP_FSSHTTPB_TestCase_S19_TC02_LockStatus_Error() { // Initialize the service this.InitializeContext(this.DefaultFileUrl, this.UserName01, this.Password01, this.Domain); LockStatusSubRequestType lockStatus = SharedTestSuiteHelper.CreateLockStatusSubRequest(); CellStorageResponse response = this.Adapter.CellStorageRequest(null, new SubRequestType[] { lockStatus }); if (Common.IsRequirementEnabled(2273, this.Site)) { LockStatusSubResponseType lockStatusResponse = SharedTestSuiteHelper.ExtractSubResponse <LockStatusSubResponseType>(response, 0, 0, this.Site); if (SharedContext.Current.IsMsFsshttpRequirementsCaptured) { //Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2273 Site.CaptureRequirementIfAreNotEqual <string>( "Success", lockStatusResponse.ErrorCode, "MS-FSSHTTP", 2273, @"[LockStatusSubResponseType]In the case of failure, the ErrorCode attribute that is part of a SubResponse element specifies the error code result for this subrequest. "); } else { Site.Assert.AreNotEqual <string>( "Success", lockStatusResponse.ErrorCode, "In the case of failure, the ErrorCode attribute that is part of a SubResponse element specifies the error code result for this subrequest. "); } } }
public void TestCase_S19_TC01_LockStatus_Success() { // Initialize the service this.InitializeContext(this.DefaultFileUrl, this.UserName01, this.Password01, this.Domain); CoauthSubRequestType subRequest = SharedTestSuiteHelper.CreateCoauthSubRequestForJoinCoauthSession(SharedTestSuiteHelper.DefaultClientID, SharedTestSuiteHelper.ReservedSchemaLockID); CellStorageResponse cellResponse = this.Adapter.CellStorageRequest(this.DefaultFileUrl, new SubRequestType[] { subRequest }); CoauthSubResponseType subResponse = SharedTestSuiteHelper.ExtractSubResponse <CoauthSubResponseType>(cellResponse, 0, 0, this.Site); this.Site.Assert.AreEqual( ErrorCodeType.Success, SharedTestSuiteHelper.ConvertToErrorCodeType(subResponse.ErrorCode, this.Site), string.Format("Account {0} with client ID {1} and schema lock ID {2} should join the coauthoring session successfully.", this.UserName01, SharedTestSuiteHelper.DefaultClientID, SharedTestSuiteHelper.ReservedSchemaLockID)); this.StatusManager.RecordCoauthSession(this.DefaultFileUrl, SharedTestSuiteHelper.DefaultClientID, SharedTestSuiteHelper.ReservedSchemaLockID); LockStatusSubRequestType lockStatus = SharedTestSuiteHelper.CreateLockStatusSubRequest(); CellStorageResponse response = this.Adapter.CellStorageRequest(this.DefaultFileUrl, new SubRequestType[] { lockStatus }); LockStatusSubResponseType lockStatusResponse = SharedTestSuiteHelper.ExtractSubResponse <LockStatusSubResponseType>(response, 0, 0, this.Site); SubResponseType subresponse = response.ResponseCollection.Response[0].SubResponse[0]; if (SharedContext.Current.IsMsFsshttpRequirementsCaptured) { // Capture the requirement MS-FSSHTTP_R246601 Site.CaptureRequirement( "MS-FSSHTTP", 246601, @"[In Appendix B: Product Behavior] Implementation does support LockStatus operation. (SharePoint Server 2016 and above follow this behavior.)"); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R2272 Site.CaptureRequirementIfAreEqual <string>( GenericErrorCodeTypes.Success.ToString(), subresponse.ErrorCode, "MS-FSSHTTP", 2272, @"[LockStatusSubResponseType]In the case of success, it contains information requested as part of a LockStatus subrequest. "); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R401011 Site.CaptureRequirementIfAreEqual <int>( 1, int.Parse(lockStatusResponse.SubResponseData.LockType), "MS-FSSHTTP", 401011, @"[In LockTypes] 1: The integer value ""1"", indicating a shared lock on the file."); } else { Site.Assert.AreEqual <string>( GenericErrorCodeTypes.Success.ToString(), subresponse.ErrorCode, "In the case of success, it contains information requested as part of a LockStatus subrequest. "); } }
public void MSFSSHTTP_FSSHTTPB_TestCase_S19_TC01_LockStatus_ExclusiveLock() { // Initialize the service this.InitializeContext(this.DefaultFileUrl, this.UserName01, this.Password01, this.Domain); // Disable the Coauthoring Feature bool isSwitchedSuccessfully = SutPowerShellAdapter.SwitchCoauthoringFeature(true); this.Site.Assert.IsTrue(isSwitchedSuccessfully, "The Coauthoring Feature should be disabled."); this.StatusManager.RecordDisableCoauth(); // Waiting change takes effect System.Threading.Thread.Sleep(30 * 1000); // Join a Coauthoring session CoauthSubRequestType subRequest = SharedTestSuiteHelper.CreateCoauthSubRequestForJoinCoauthSession(SharedTestSuiteHelper.DefaultClientID, SharedTestSuiteHelper.ReservedSchemaLockID, true, SharedTestSuiteHelper.DefaultExclusiveLockID); CellStorageResponse cellResponse = this.Adapter.CellStorageRequest(this.DefaultFileUrl, new SubRequestType[] { subRequest }); CoauthSubResponseType subResponse = SharedTestSuiteHelper.ExtractSubResponse <CoauthSubResponseType>(cellResponse, 0, 0, this.Site); this.Site.Assert.AreEqual( ErrorCodeType.Success, SharedTestSuiteHelper.ConvertToErrorCodeType(subResponse.ErrorCode, this.Site), string.Format("Account {0} with client ID {1} and schema lock ID {2} should join the coauthoring session successfully.", this.UserName01, SharedTestSuiteHelper.DefaultClientID, SharedTestSuiteHelper.DefaultExclusiveLockID)); this.StatusManager.RecordCoauthSession(this.DefaultFileUrl, SharedTestSuiteHelper.DefaultClientID, SharedTestSuiteHelper.DefaultExclusiveLockID); LockStatusSubRequestType lockStatus = SharedTestSuiteHelper.CreateLockStatusSubRequest(); CellStorageResponse response = this.Adapter.CellStorageRequest(this.DefaultFileUrl, new SubRequestType[] { lockStatus }); LockStatusSubResponseType lockStatusResponse = SharedTestSuiteHelper.ExtractSubResponse <LockStatusSubResponseType>(response, 0, 0, this.Site); SubResponseType subresponse = response.ResponseCollection.Response[0].SubResponse[0]; if (SharedContext.Current.IsMsFsshttpRequirementsCaptured) { // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R404011 Site.CaptureRequirementIfAreEqual <int>( 2, int.Parse(lockStatusResponse.SubResponseData.LockType), "MS-FSSHTTP", 404011, @"[In LockTypes] 2: The integer value ""2"", indicating an exclusive lock on the file."); } else { Site.Assert.AreEqual <int>( 2, int.Parse(lockStatusResponse.SubResponseData.LockType), @"2: The integer value ""2"", indicating an exclusive lock on the file."); } }