public async Task ItemsMoved_TestAsync() { var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin); var userItemFilter = new UserItemFilter() { HasParent = true }; var userItem = await userItemFilter.GetUserItemAsync(app); var parentItemFilter1 = new UserItemFilter() { TargetToMove = userItem }; var parentItem1 = await parentItemFilter1.GetUserItemAsync(app); var actualPath = string.Empty; var actualOldPath = string.Empty; var actualOldParentPath = string.Empty; var expectedOldPath = userItem.Path; var expectedOldParentPath = userItem.Parent.Path; await userContext.AddItemsMovedEventHandlerAsync(UserContext_ItemsMoved); await userItem.MoveAsync(authentication, parentItem1.Path); Assert.AreEqual(userItem.Path, actualPath); Assert.AreEqual(expectedOldPath, actualOldPath); Assert.AreEqual(expectedOldParentPath, actualOldParentPath); var parentItemFilter2 = new UserItemFilter() { TargetToMove = userItem, ExcludedItems = new IUserItem[] { parentItem1 } }; var parentItem2 = await parentItemFilter2.GetUserItemAsync(app); await userContext.RemoveItemsMovedEventHandlerAsync(UserContext_ItemsMoved); await userItem.MoveAsync(authentication, parentItem2.Path); Assert.AreNotEqual(userItem.Path, actualPath); Assert.AreEqual(expectedOldPath, actualOldPath); Assert.AreEqual(expectedOldParentPath, actualOldParentPath); void UserContext_ItemsMoved(object sender, ItemsMovedEventArgs <IUserItem> e) { var userItem = e.Items.Single(); actualPath = userItem.Path; actualOldPath = e.OldPaths.Single(); actualOldParentPath = e.OldParentPaths.Single(); } }