public void Renting_a_video_tape_emits_a_recent_enough_video_title()
            {
                var videoTitleId = new VideoTitleId(Guid.NewGuid());
                var title        = VideoTitle.Register(videoTitleId, "Shaving Ryan's Privates");
                var videoTapeId  = new VideoTapeId(Guid.NewGuid());
                var tape         = title.ScanNewTape(videoTapeId, new BarCode("A432"));

                tape.ClearChanges();

                title.CorrectTitle("Saving Private Ryan");
                var videoStoreMemberId = new VideoStoreMemberId(Guid.NewGuid());

                tape.Rent(videoStoreMemberId, new RentalPeriod(DateTime.Today, DateTime.Today.AddDays(3)));

                Assert.That(tape.GetChanges(),
                            Is.EquivalentTo(new object[]
                {
                    new RentedVideoTape(
                        videoTapeId,
                        videoTitleId,
                        "Saving Private Ryan",
                        videoStoreMemberId,
                        DateTime.Today,
                        DateTime.Today.AddDays(3))
                }));
            }
 void When(VideoTitleRegistered @event)
 {
     Id    = new VideoTitleId(@event.Id);
     Title = @event.Title;
 }
 public static VideoTitle Register(VideoTitleId videoTitleId, string title)
 {
     return(new VideoTitle(new VideoTitleRegistered(videoTitleId, title)));
 }