public void PreviousAndNextDuringAddRemoveItems() { var manager = new PlaylistManager(); manager.AddAndReplaceItems(threeItems); manager.CurrentItem = threeItems[0]; manager.NextItem(); Assert.IsTrue(manager.CanNextItem); AssertHelper.PropertyChangedEvent(manager, x => x.CanNextItem, () => manager.RemoveItems(new[] { threeItems[2] })); Assert.IsFalse(manager.CanNextItem); AssertHelper.PropertyChangedEvent(manager, x => x.CanNextItem, () => manager.AddItems(new[] { threeItems[2] })); Assert.IsTrue(manager.CanNextItem); manager.NextItem(); Assert.AreEqual(threeItems[2], manager.CurrentItem); manager.PreviousItem(); Assert.AreEqual(threeItems[1], manager.CurrentItem); Assert.IsTrue(manager.CanPreviousItem); AssertHelper.PropertyChangedEvent(manager, x => x.CanPreviousItem, () => manager.RemoveItems(new[] { threeItems[0] })); Assert.IsFalse(manager.CanPreviousItem); }
public void AddRemoveAndMoveItems() { var manager = new PlaylistManager(); Assert.AreEqual(0, manager.Items.Count); manager.AddItems(threeItems); Assert.AreEqual(3, manager.Items.Count); manager.RemoveItems(new[] { threeItems[2] }); Assert.AreEqual(2, manager.Items.Count); manager.AddAndReplaceItems(threeItems); Assert.AreEqual(3, manager.Items.Count); manager.MoveItems(2, new[] { manager.Items[0] }); Assert.IsTrue(manager.Items.SequenceEqual(new[] { threeItems[1], threeItems[2], threeItems[0] })); }