public void MSASCMD_S04_TC08_FolderSync_UpdateFolder() { #region Call method FolderCreate command to create a new folder as a child folder of the specified parent folder. string folderName = Common.GenerateResourceName(Site, "FolderSync"); FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, folderName, "0"); Site.Assert.AreEqual <int>(1, int.Parse(folderCreateResponse.ResponseData.Status), "The server should return a status code 1 in the FolderCreate command response to indicate success."); TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId); #endregion #region Change DeviceID this.CMDAdapter.ChangeDeviceID("NewDeviceID"); this.RecordDeviceInfoChanged(); string folderSyncKey = folderCreateResponse.ResponseData.SyncKey; #endregion #region Call method FolderSync to synchronize the collection hierarchy. FolderSyncResponse foldersyncResponseForNewDeviceID = this.FolderSync(); string changeDeviceIDFolderId = TestSuiteBase.GetCollectionId(foldersyncResponseForNewDeviceID, folderName); Site.Assert.IsFalse(string.IsNullOrEmpty(changeDeviceIDFolderId), "If the new folder created by FolderCreate command, server should return a server ID for the new created folder."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R5020"); // If client sends the FolderSync request successfully, the server must send a synchronization key to the client in a response. Site.CaptureRequirementIfIsTrue( (foldersyncResponseForNewDeviceID.ResponseData.SyncKey != null) && (foldersyncResponseForNewDeviceID.ResponseData.SyncKey != folderSyncKey), 5020, @"[In Synchronizing a Folder Hierarchy] [FolderSync sequence for folder hierarchy synchronization, order 1:] The server responds with [the folder hierarchy and] a new folderhierarchy:SyncKey value."); #endregion #region Call method FolderUpdate to rename a folder. string folderUpdateName = Common.GenerateResourceName(Site, "FolderUpdate"); FolderUpdateRequest folderUpdateRequest = Common.CreateFolderUpdateRequest(foldersyncResponseForNewDeviceID.ResponseData.SyncKey, changeDeviceIDFolderId, folderUpdateName, "0"); this.CMDAdapter.FolderUpdate(folderUpdateRequest); #endregion #region Restore DeviceID and call FolderSync command. this.CMDAdapter.ChangeDeviceID(Common.GetConfigurationPropertyValue("DeviceID", this.Site)); // The client calls FolderSync command to synchronize the collection hierarchy with original device id. FolderSyncRequest folderSyncRequest = Common.CreateFolderSyncRequest(folderSyncKey); FolderSyncResponse folderSyncResponse = this.CMDAdapter.FolderSync(folderSyncRequest); bool isUpdated = false; foreach (Response.FolderSyncChangesUpdate update in folderSyncResponse.ResponseData.Changes.Update) { if (update.DisplayName == folderUpdateName) { isUpdated = true; break; } } Site.Assert.IsTrue(isUpdated, "Rename successfully"); #endregion }
public void MSASCMD_S11_TC05_Ping_Status7_Outdate() { #region Change a new user to call ActiveSync operation with a new DeviceID. this.CMDAdapter.SwitchUser(this.User3Information.UserName, this.User3Information.UserPassword, this.User3Information.UserDomain); // Record user that uses new DeviceID this.RecordDeviceInfoChanged(); this.CMDAdapter.ChangeDeviceID("FirstDeviceID"); #endregion #region Sync user folder changes this.FolderSync(); #endregion #region Switch to new device and create one folder this.CMDAdapter.ChangeDeviceID("SecondDeviceID"); string folderSynKey = this.GetFolderSyncKey(); // Create one mail type folder string newFolderName = Guid.NewGuid().ToString().Replace("-", string.Empty); FolderCreateRequest folderCreateRequest = Common.CreateFolderCreateRequest(folderSynKey, 12, newFolderName, this.User1Information.InboxCollectionId); FolderCreateResponse folderCreateResponse = this.CMDAdapter.FolderCreate(folderCreateRequest); Site.Assert.AreEqual <int>( 1, int.Parse(folderCreateResponse.ResponseData.Status), "After folder create success, server should return status 1"); #endregion #region Switch back to old device and send one ping request this.CMDAdapter.ChangeDeviceID("FirstDeviceID"); PingRequest pingRequest = CreatePingRequest(this.User1Information.InboxCollectionId, Request.PingFolderClass.Email); PingResponse pingResponse = this.CMDAdapter.Ping(pingRequest); #endregion // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4257"); // Verify MS-ASCMD requirement: MS-ASCMD_R4257 Site.CaptureRequirementIfAreEqual <int>( 7, int.Parse(pingResponse.ResponseData.Status), 4257, @"[In Status(Ping)] [When the scope is Global], [the cause of the status value 7 is] The folder hierarchy is out of date."); #region Record new created folder collection ID. // Get new created folder collection ID FolderSyncRequest folderSyncRequestForNewFolder = Common.CreateFolderSyncRequest("0"); FolderSyncResponse folderSyncResponseForNewFolder = this.CMDAdapter.FolderSync(folderSyncRequestForNewFolder); // Gets the server ID for new folder after change DeviceID. string serverId = TestSuiteBase.GetCollectionId(folderSyncResponseForNewFolder, newFolderName); TestSuiteBase.RecordCaseRelativeFolders(this.User3Information, serverId); #endregion }
public void MSASCMD_S04_TC09_FolderSync_DeleteFolder() { #region The client calls FolderCreate command to create a new folder as a child folder of the specified parent folder, then server returns ServerId for FolderCreate command. string folderName = Common.GenerateResourceName(Site, "FolderSync"); FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, folderName, "0"); Site.Assert.AreEqual <int>(1, int.Parse(folderCreateResponse.ResponseData.Status), "The server should return a status code 1 in the FolderCreate command response to indicate success."); #endregion #region Changes DeviceID. this.CMDAdapter.ChangeDeviceID("NewDeviceID"); this.RecordDeviceInfoChanged(); #endregion #region Calls method FolderSync to synchronize the collection hierarchy. FolderSyncRequest folderSyncRequestForNewDeviceID = Common.CreateFolderSyncRequest("0"); FolderSyncResponse folderSyncResponseForNewDeviceID = this.CMDAdapter.FolderSync(folderSyncRequestForNewDeviceID); // Gets the server ID for new folder after change DeviceID. string serverId = TestSuiteBase.GetCollectionId(folderSyncResponseForNewDeviceID, folderName); Site.Assert.IsNotNull(serverId, "Call method GetServerId to get a non-null ServerId to indicate success."); #endregion #region The client calls FolderDelete command to delete the created folder in step 2 from the server. FolderDeleteRequest folderDeleteRequest = Common.CreateFolderDeleteRequest(folderSyncResponseForNewDeviceID.ResponseData.SyncKey, serverId); FolderDeleteResponse folderDeleteResponse = this.CMDAdapter.FolderDelete(folderDeleteRequest); Site.Assert.AreEqual <int>(1, int.Parse(folderDeleteResponse.ResponseData.Status), "The server should return a status code 1 in the FolderDelete command response to indicate success."); #endregion #region Restore DeviceID and call FolderSync command this.CMDAdapter.ChangeDeviceID(Common.GetConfigurationPropertyValue("DeviceID", this.Site)); // The client calls FolderSync command to synchronize the collection hierarchy with original device id. FolderSyncRequest folderSyncRequest = Common.CreateFolderSyncRequest(folderCreateResponse.ResponseData.SyncKey); FolderSyncResponse folderSyncResponse = this.CMDAdapter.FolderSync(folderSyncRequest); Site.Assert.AreEqual <int>(1, int.Parse(folderSyncResponse.ResponseData.Status), "Server should return status 1 in the FolderSync response to indicate success."); Site.Assert.IsNotNull(folderSyncResponse.ResponseData.Changes, "Server should return Changes element in the FolderSync response after the collection hierarchy changed by call FolderDelete command."); Site.Assert.IsNotNull(folderSyncResponse.ResponseData.Changes.Delete, "Server should return Changes element in the FolderSync response after the specified folder deleted."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R5863"); // The folderDeleteSuccess is true indicates the folder which deleted by FolderDelete command is deleted successfully. // Verify MS-ASCMD requirement: MS-ASCMD_R5863 Site.CaptureRequirementIfIsNotNull( folderSyncResponse.ResponseData.Changes.Delete[0].ServerId, 5863, @"[In Delete(FolderSync)] [The Delete element] specifies that a folder on the server was deleted since the last folder synchronization."); #endregion }
public void MSASCMD_S04_TC04_FolderSync_Resynchronizes() { // The client calls FolderCreate command to create a new folder as a child folder of the specified parent folder, then server returns ServerId for FolderCreate command. string folderName = Common.GenerateResourceName(Site, "FolderSync"); FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, folderName, "0"); Site.Assert.AreEqual <int>(1, int.Parse(folderCreateResponse.ResponseData.Status), "The server should return a status code 1 in the FolderCreate command response to indicate success."); TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId); // The client calls FolderSync method to synchronize the collection hierarchy, then server returns latest folder SyncKey. FolderSyncResponse folderSyncResponse = this.FolderSync(); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R5012"); // Verify MS-ASCMD requirement: MS-ASCMD_R5012 Site.CaptureRequirementIfAreEqual( folderCreateResponse.ResponseData.ServerId, TestSuiteBase.GetCollectionId(folderSyncResponse, folderName), 5012, @"[In Synchronizing a Folder Hierarchy] Existing folderhierarchy:ServerId values do not change when the client resynchronizes."); }