コード例 #1
0
ファイル: MementoTests.cs プロジェクト: RobbieLD/patterns
        public void BikeRace_Save_SavesBikeRace()
        {
            // Arrange
            BikeRace race = new BikeRace(new string[] { "Tom", "Dick", "Harry" });

            // Act
            race.RunToCheckPoint();
            CheckPointSave checkpointOne = new CheckPointSave(race.Save());

            race.RunToCheckPoint();

            // Assert
            Assert.AreNotSame(race.GetRace(), checkpointOne.Restore());
        }
コード例 #2
0
ファイル: MementoRunner.cs プロジェクト: RobbieLD/patterns
        public static void Run()
        {
            Console.WriteLine($"{Environment.NewLine}*** MEMENTO PATTERN ***{Environment.NewLine}");

            BikeRace race = new BikeRace(new string[] { "Tom", "Dick", "Harry", "Bill", "Jim", "Rick", "Fred", "Joe", "Dan", "Gav", "Mark", "Henry" });

            // Run to first checkpoint
            race.RunToCheckPoint();
            race.DisplayTheRace();

            CheckPointSave checkpointOne = new CheckPointSave(race.Save());

            race.RunToCheckPoint();
            race.DisplayTheRace();

            // Return to the saved state
            race.Restore(checkpointOne.Restore());
            race.DisplayTheRace();
        }