/// <summary>
        /// Method that uses initializes new serializer to takes the previously saved game
        /// </summary>
        /// <param name="commandInfo"></param>
        public override void Execute(ICommandInfo commandInfo)
        {
            var serializer = new Serializer();
            var memento = serializer.Deserialize(GlobalErrorMessages.SaveMatrixFileName) as MatrixMemento;

            this.Matrix.RestoreMemento(memento);
        }
        public void ExpectSerializeMethodToCreateFileIfTheFileDoesntExist()
        {
            var fileName = "testFile.txt";
            object testObjectToSerialize = new object();
            var serializer = new Serializer();

            serializer.Serialize(testObjectToSerialize, fileName);

            Assert.True(File.Exists(fileName));
            File.Delete(fileName);
        }
        public void ExpectDeserializeMethodToReturnObjectWhenFileExist()
        {
            var fileName = "testFile.txt";
            var testObjectToSerialize = new object();
            var serializer = new Serializer();

            serializer.Serialize(testObjectToSerialize, fileName);

            var deserializedObject = serializer.Deserialize(fileName);

            Assert.NotNull(deserializedObject);

            File.Delete(fileName);
        }
 /// <summary>
 /// Method for storing the state of the game. Uses memento pattern to execute the command
 /// </summary>
 /// <param name="commandInfo">SAVE Command needed</param>
 public override void Execute(ICommandInfo commandInfo)
 {
     var memento = this.Matrix.SaveMemento();
     var serializer = new Serializer();
     serializer.Serialize(memento, GlobalErrorMessages.SaveMatrixFileName);
 }