public virtual void TestFromYarnApplicationReport() { ApplicationId mockAppId = Org.Mockito.Mockito.Mock <ApplicationId>(); Org.Mockito.Mockito.When(mockAppId.GetClusterTimestamp()).ThenReturn(12345L); Org.Mockito.Mockito.When(mockAppId.GetId()).ThenReturn(6789); ApplicationReport mockReport = Org.Mockito.Mockito.Mock <ApplicationReport>(); Org.Mockito.Mockito.When(mockReport.GetTrackingUrl()).ThenReturn("dummy-tracking-url" ); Org.Mockito.Mockito.When(mockReport.GetApplicationId()).ThenReturn(mockAppId); Org.Mockito.Mockito.When(mockReport.GetYarnApplicationState()).ThenReturn(YarnApplicationState .Killed); Org.Mockito.Mockito.When(mockReport.GetUser()).ThenReturn("dummy-user"); Org.Mockito.Mockito.When(mockReport.GetQueue()).ThenReturn("dummy-queue"); string jobFile = "dummy-path/job.xml"; try { JobStatus status = TypeConverter.FromYarn(mockReport, jobFile); } catch (ArgumentNullException) { NUnit.Framework.Assert.Fail("Type converstion from YARN fails for jobs without " + "ApplicationUsageReport"); } ApplicationResourceUsageReport appUsageRpt = Org.Apache.Hadoop.Yarn.Util.Records. NewRecord <ApplicationResourceUsageReport>(); Resource r = Org.Apache.Hadoop.Yarn.Util.Records.NewRecord <Resource>(); r.SetMemory(2048); appUsageRpt.SetNeededResources(r); appUsageRpt.SetNumReservedContainers(1); appUsageRpt.SetNumUsedContainers(3); appUsageRpt.SetReservedResources(r); appUsageRpt.SetUsedResources(r); Org.Mockito.Mockito.When(mockReport.GetApplicationResourceUsageReport()).ThenReturn (appUsageRpt); JobStatus status_1 = TypeConverter.FromYarn(mockReport, jobFile); NUnit.Framework.Assert.IsNotNull("fromYarn returned null status", status_1); NUnit.Framework.Assert.AreEqual("jobFile set incorrectly", "dummy-path/job.xml", status_1.GetJobFile()); NUnit.Framework.Assert.AreEqual("queue set incorrectly", "dummy-queue", status_1. GetQueue()); NUnit.Framework.Assert.AreEqual("trackingUrl set incorrectly", "dummy-tracking-url" , status_1.GetTrackingUrl()); NUnit.Framework.Assert.AreEqual("user set incorrectly", "dummy-user", status_1.GetUsername ()); NUnit.Framework.Assert.AreEqual("schedulingInfo set incorrectly", "dummy-tracking-url" , status_1.GetSchedulingInfo()); NUnit.Framework.Assert.AreEqual("jobId set incorrectly", 6789, status_1.GetJobID( ).GetId()); NUnit.Framework.Assert.AreEqual("state set incorrectly", JobStatus.State.Killed, status_1.GetState()); NUnit.Framework.Assert.AreEqual("needed mem info set incorrectly", 2048, status_1 .GetNeededMem()); NUnit.Framework.Assert.AreEqual("num rsvd slots info set incorrectly", 1, status_1 .GetNumReservedSlots()); NUnit.Framework.Assert.AreEqual("num used slots info set incorrectly", 3, status_1 .GetNumUsedSlots()); NUnit.Framework.Assert.AreEqual("rsvd mem info set incorrectly", 2048, status_1.GetReservedMem ()); NUnit.Framework.Assert.AreEqual("used mem info set incorrectly", 2048, status_1.GetUsedMem ()); }