public virtual void TestQueueNamePercentEncoding()
        {
            JobIndexInfo info     = new JobIndexInfo();
            JobID        oldJobId = JobID.ForName(JobId);
            JobId        jobId    = TypeConverter.ToYarn(oldJobId);

            info.SetJobId(jobId);
            info.SetSubmitTime(long.Parse(SubmitTime));
            info.SetUser(UserName);
            info.SetJobName(JobName);
            info.SetFinishTime(long.Parse(FinishTime));
            info.SetNumMaps(System.Convert.ToInt32(NumMaps));
            info.SetNumReduces(System.Convert.ToInt32(NumReduces));
            info.SetJobStatus(JobStatus);
            info.SetQueueName(QueueNameWithDelimiter);
            info.SetJobStartTime(long.Parse(JobStartTime));
            string jobHistoryFile = FileNameIndexUtils.GetDoneFileName(info);

            NUnit.Framework.Assert.IsTrue("Queue name not encoded correctly into job history file"
                                          , jobHistoryFile.Contains(QueueNameWithDelimiterEscape));
        }
        public virtual void TestEncodingDecodingEquivalence()
        {
            JobIndexInfo info     = new JobIndexInfo();
            JobID        oldJobId = JobID.ForName(JobId);
            JobId        jobId    = TypeConverter.ToYarn(oldJobId);

            info.SetJobId(jobId);
            info.SetSubmitTime(long.Parse(SubmitTime));
            info.SetUser(UserName);
            info.SetJobName(JobName);
            info.SetFinishTime(long.Parse(FinishTime));
            info.SetNumMaps(System.Convert.ToInt32(NumMaps));
            info.SetNumReduces(System.Convert.ToInt32(NumReduces));
            info.SetJobStatus(JobStatus);
            info.SetQueueName(QueueName);
            info.SetJobStartTime(long.Parse(JobStartTime));
            string       jobHistoryFile = FileNameIndexUtils.GetDoneFileName(info);
            JobIndexInfo parsedInfo     = FileNameIndexUtils.GetIndexInfo(jobHistoryFile);

            NUnit.Framework.Assert.AreEqual("Job id different after encoding and decoding", info
                                            .GetJobId(), parsedInfo.GetJobId());
            NUnit.Framework.Assert.AreEqual("Submit time different after encoding and decoding"
                                            , info.GetSubmitTime(), parsedInfo.GetSubmitTime());
            NUnit.Framework.Assert.AreEqual("User different after encoding and decoding", info
                                            .GetUser(), parsedInfo.GetUser());
            NUnit.Framework.Assert.AreEqual("Job name different after encoding and decoding",
                                            info.GetJobName(), parsedInfo.GetJobName());
            NUnit.Framework.Assert.AreEqual("Finish time different after encoding and decoding"
                                            , info.GetFinishTime(), parsedInfo.GetFinishTime());
            NUnit.Framework.Assert.AreEqual("Num maps different after encoding and decoding",
                                            info.GetNumMaps(), parsedInfo.GetNumMaps());
            NUnit.Framework.Assert.AreEqual("Num reduces different after encoding and decoding"
                                            , info.GetNumReduces(), parsedInfo.GetNumReduces());
            NUnit.Framework.Assert.AreEqual("Job status different after encoding and decoding"
                                            , info.GetJobStatus(), parsedInfo.GetJobStatus());
            NUnit.Framework.Assert.AreEqual("Queue name different after encoding and decoding"
                                            , info.GetQueueName(), parsedInfo.GetQueueName());
            NUnit.Framework.Assert.AreEqual("Job start time different after encoding and decoding"
                                            , info.GetJobStartTime(), parsedInfo.GetJobStartTime());
        }