public void CreateReport_WritesJobIdToFile(bool createJobIdFile) { var jobId = Guid.NewGuid(); const string extractionRoot = "root"; const string extractionDir = "proj1/extract"; var mockJobStore = new Mock <IExtractJobStore>(MockBehavior.Strict); mockJobStore .Setup( x => x.GetCompletedJobInfo(It.IsAny <Guid>()) ) .Returns( new CompletedExtractJobInfo( jobId, DateTime.UtcNow, DateTime.UtcNow + TimeSpan.FromHours(1), "1234", extractionDir, "SeriesInstanceUID", 1, null, false, false ) ); mockJobStore.Setup(x => x.GetCompletedJobRejections(It.IsAny <Guid>())).Returns(Enumerable.Empty <ExtractionIdentifierRejectionInfo>()); mockJobStore.Setup(x => x.GetCompletedJobAnonymisationFailures(It.IsAny <Guid>())).Returns(Enumerable.Empty <FileAnonFailureInfo>()); mockJobStore.Setup(x => x.GetCompletedJobVerificationFailures(It.IsAny <Guid>())).Returns(Enumerable.Empty <FileVerificationFailureInfo>()); var mockFileSystem = new MockFileSystem(); mockFileSystem.Directory.CreateDirectory(mockFileSystem.Path.Combine(extractionRoot, extractionDir)); var reporter = new FileReporter(mockJobStore.Object, mockFileSystem, extractionRoot, ReportFormat.Split, reportNewLine: null, createJobIdFile: createJobIdFile); reporter.CreateReport(jobId); string expectedJobIdFile = mockFileSystem.Path.Combine(extractionRoot, extractionDir, "jobId.txt"); if (createJobIdFile) { Assert.True(mockFileSystem.FileExists(expectedJobIdFile)); Assert.AreEqual(jobId.ToString(), mockFileSystem.File.ReadAllLines(expectedJobIdFile)[0]); } else { Assert.False(mockFileSystem.FileExists(expectedJobIdFile)); } }