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))
                }));
            }
 public VideoTape ScanNewTape(VideoTapeId tapeId, BarCode barCode)
 {
     return(new VideoTape(
                this,
                new ScannedNewVideoTape(Id, tapeId, barCode)));
 }
 void When(ScannedNewVideoTape @event)
 {
     Id = new VideoTapeId(@event.VideoTapeId);
 }