public void CompareFilesByModDate_IfRecorderFileSystemInfoIsDiffrentEachOther_ReturnZero()
        {
            //Arrange

            RecorderFileSystemInfo l = new TerminalRemoteFileSystemInfo(_context, "lorem", "ipsum");
            RecorderFileSystemInfo r = new TerminalRemoteFileSystemInfo(_context, "lorem ipsum", "lorem");

            //Act
            // ReSharper disable ExpressionIsAlwaysNull
            var actual = MethodTestHelper.RunInstanceMethod<FileRecorder, int>("CompareFilesByModDate", _fileRecorder, new object[] { l, r });
            // ReSharper restore ExpressionIsAlwaysNull

            //Assert
            Assert.AreEqual(actual, 0);
        }
 protected virtual TerminalRemoteFileSystemInfo[] Refresh(string absolutePath)
 {
     var refreshInfo = new TerminalRemoteFileSystemInfo[] { null };
     var ctx = Context as TerminalRecorderContext;
     if (ctx == null)
         throw new Exception("Context is not a TerminalRecorderContext");
     ctx.Recorder.Log(LogLevel.DEBUG, "Execute Command to Refresh [" + absolutePath + "]");
     ctx.ExecuteRemoteCommand(ctx.CommandFileSystemInfo.Replace("@NODE", absolutePath), args =>
     {
         var info = Context.InputRecord.ToString().Split(new[] { ';' }, 2);
         var r = 0;
         if (info.Length >= 2 && int.TryParse(info[0], out r))
         {
             if (r == 0)
             {
                 if (string.IsNullOrEmpty(info[1]))
                 {
                     refreshInfo[0] = new TerminalRemoteFileSystemInfo(Context, absolutePath, absolutePath);
                     refreshInfo[0].exists.Value = 0;
                 }
                 else
                 {
                     info = info[1].Split(new[] { ';' }, 8);
                     if (info.Length == 8)
                     {
                         Context.Recorder.Log(LogLevel.DEBUG, "Refresh With [" + Context.InputRecord + "]");
                         refreshInfo[0] = new TerminalRemoteFileSystemInfo(Context, info[7],
                                                                           FileSystemHelper.FileNameOf(info[7],
                                                                                                       info[0]))
                             {
                                 fileNodeId = info[1],
                                 creationTimeUtc = Epoch.AddSeconds(ParseLong(info[2])),
                                 lastAccessTimeUtc = Epoch.AddSeconds(ParseLong(info[3])),
                                 lastWriteTimeUtc = Epoch.AddSeconds(ParseLong(info[4])),
                                 attributes =
                                     info[6].Equals("directory") || info[6].Equals("symbolic link")
                                         ? FileAttributes.Directory
                                         : FileAttributes.Normal
                             };
                         refreshInfo[0].exists.Value = 1;
                     }
                     else
                         throw new Exception("Unexpected Create Directory Info command return:[" +
                                             Context.InputRecord +
                                             "]");
                 }
             }
             else
                 throw new Exception("Create Directory Info Failed Return(" + info[0] + "), Msg(" + info[1] +
                                     ")");
         }
         else
             throw new Exception("Remote Create Directory Info command result not understood:[" +
                                 Context.InputRecord +
                                 "]");
     });
     return refreshInfo;
 }