public virtual void TestWriteApplication()
        {
            RMApp app = CreateRMApp(ApplicationId.NewInstance(0, 1));

            writer.ApplicationStarted(app);
            ApplicationHistoryData appHD = null;

            for (int i = 0; i < MaxRetries; ++i)
            {
                appHD = store.GetApplication(ApplicationId.NewInstance(0, 1));
                if (appHD != null)
                {
                    break;
                }
                else
                {
                    Sharpen.Thread.Sleep(100);
                }
            }
            NUnit.Framework.Assert.IsNotNull(appHD);
            NUnit.Framework.Assert.AreEqual("test app", appHD.GetApplicationName());
            NUnit.Framework.Assert.AreEqual("test app type", appHD.GetApplicationType());
            NUnit.Framework.Assert.AreEqual("test user", appHD.GetUser());
            NUnit.Framework.Assert.AreEqual("test queue", appHD.GetQueue());
            NUnit.Framework.Assert.AreEqual(0L, appHD.GetSubmitTime());
            NUnit.Framework.Assert.AreEqual(1L, appHD.GetStartTime());
            writer.ApplicationFinished(app, RMAppState.Finished);
            for (int i_1 = 0; i_1 < MaxRetries; ++i_1)
            {
                appHD = store.GetApplication(ApplicationId.NewInstance(0, 1));
                if (appHD.GetYarnApplicationState() != null)
                {
                    break;
                }
                else
                {
                    Sharpen.Thread.Sleep(100);
                }
            }
            NUnit.Framework.Assert.AreEqual(2L, appHD.GetFinishTime());
            NUnit.Framework.Assert.AreEqual("test diagnostics info", appHD.GetDiagnosticsInfo
                                                ());
            NUnit.Framework.Assert.AreEqual(FinalApplicationStatus.Undefined, appHD.GetFinalApplicationStatus
                                                ());
            NUnit.Framework.Assert.AreEqual(YarnApplicationState.Finished, appHD.GetYarnApplicationState
                                                ());
        }