public void ShouldCallRemoveElementOnTimelineModelWhenUnExecute() { var track = new Track { TrackType = TrackType.Visual }; this.timelineModel.Tracks.Add(track); var position = TimeCode.FromAbsoluteTime(10, SmpteFrameRate.Smpte30); var element = new TimelineElement { Position = position, Asset = new VideoAsset { Duration = TimeCode.FromAbsoluteTime(30, SmpteFrameRate.Smpte30), FrameRate = SmpteFrameRate.Smpte30, Title = "Test Video #1" } }; var command = new AddElementCommand(this.timelineModel, track, element); command.Execute(); var addedElement = this.timelineModel.AddElementArgument; Assert.IsFalse(this.timelineModel.RemoveElementCalled); command.UnExecute(); Assert.IsTrue(this.timelineModel.RemoveElementCalled); Assert.AreEqual(addedElement, this.timelineModel.RemoveElementArgument); }