public void ErrorReportIsProcessedWhenItIsCreatedAsFileOnDrive() { StorageManager.InTemporaryDirectory(directory => { //Given var config = new ErrorReportConfiguration(directory, Path.Combine(directory, "processed")); var container = GetErrorReportReporter(config); var errorReportReporter = container.ErrorReportReporter; var gitHubIssueCreatorMock = container.GitHubIssueCreatorMock; gitHubIssueCreatorMock.Setup(gic => gic.CreateIssue(It.IsAny <ErrorReport>())); var fileSystemWatcherMock = container.FileSystemWatcherMock; var eventArgs = new FileSystemEventArgs(WatcherChangeTypes.Created, directory, "error-report.json"); var errorReport = new ErrorReport(); var json = JsonConvert.SerializeObject(errorReport); var filePath = Path.Combine(directory, "error-report.json"); errorReportReporter.Start(); //When File.WriteAllText(filePath, json); fileSystemWatcherMock.Raise(fsw => fsw.Created += null, eventArgs); //Then gitHubIssueCreatorMock.Verify(gic => gic.CreateIssue(It.IsAny <ErrorReport>()), Times.Once); }); }
public GetContainer(Mock <IFileSystemWatcher> fileSystemWatcherMock, Mock <IGitHubIssueCreator> gitHubIssueCreatorMock, ErrorReportReporter errorReportReporter, ErrorReportConfiguration errorReportConfiguration) { FileSystemWatcherMock = fileSystemWatcherMock; GitHubIssueCreatorMock = gitHubIssueCreatorMock; ErrorReportReporter = errorReportReporter; ErrorReportConfiguration = errorReportConfiguration; }
private static void Register(IKernel kernel) { var gitHubRepoInfo = new GitHubRepoInfo("CreateMask", "Devoney", "create-mask-error-reporter", "createmask2018"); kernel.Bind <GitHubRepoInfo>().ToConstant(gitHubRepoInfo); var errorReportConfiguration = new ErrorReportConfiguration("./error-reports", "./error-reports/reported"); kernel.Bind <ErrorReportConfiguration>().ToConstant(errorReportConfiguration); kernel.Bind <IArgumentsParser>().To <ArgumentsParser>(); kernel.Bind <IBitmapProcessor>().To <BitmapProcessor>(); kernel.Bind <IDateTimeWorker>().To <DateTimeWorker>(); kernel.Bind <ICloner>().To <Cloner>(); kernel.Bind <IErrorReportCreator>().To <ErrorReportCreator>(); kernel.Bind <IErrorReportReporter>().To <ErrorReportReporter>(); kernel.Bind <IExposureTimeCalculator>().To <ExposureTimeCalculator>(); kernel.Bind <IFileSystemWatcher>().To <FileSystemWatcher>(); kernel.Bind <IGenericGridLoader <int> >().To <GenericGridLoader <int> >(); kernel.Bind <IGenericLoader <Measurement> >().To <GenericLoader <Measurement> >(); kernel.Bind <IGitHubIssueCreator>().To <GitHubIssueCreator>(); kernel.Bind <IMaskIntensityResistanceInterpolatorFactory>().To <MaskIntensityResistanceInterpolatorFactory>(); kernel.Bind <IMeasurementGridProcessor>().To <MeasurementGridProcessor>(); kernel.Bind <IOutputWriter>().To <OutputWriter>(); RegisterGithubClients(kernel); kernel.Bind <IReleaseManager>().To <ReleaseManager>(); }
public ErrorReportReporter(IFileSystemWatcher fileSystemWatcher, ErrorReportConfiguration errorReportConfiguration, IGitHubIssueCreator gitHubIssueCreator) { _fileSystemWatcher = fileSystemWatcher; _errorReportConfiguration = errorReportConfiguration; _gitHubIssueCreator = gitHubIssueCreator; }
private static GetContainer GetErrorReportReporter(ErrorReportConfiguration errorReportConfiguration) { var fileSystemWatcherMock = new Mock <IFileSystemWatcher>(); var gitHubIssueCreatorMock = new Mock <IGitHubIssueCreator>(); var errorReportReporter = new ErrorReportReporter(fileSystemWatcherMock.Object, errorReportConfiguration, gitHubIssueCreatorMock.Object); return(new GetContainer(fileSystemWatcherMock, gitHubIssueCreatorMock, errorReportReporter, errorReportConfiguration)); }
public void DirectoryToMoveReportedReportsToIsCreated() { StorageManager.InTemporaryDirectory(directory => { //Given const string subDirName = "reported"; var subDir = Path.Combine(directory, subDirName); var errorReportConfiguration = new ErrorReportConfiguration(directory, subDir); var container = GetErrorReportReporter(errorReportConfiguration); var errorReportReporter = container.ErrorReportReporter; //When errorReportReporter.Start(); //Then Directory.Exists(subDir).Should().BeTrue(); }); }
public void ErrorReportReporterStartsOnceWhenStartingItTwice() { //Given var errorReportConfiguration = new ErrorReportConfiguration("./", "./"); var container = GetErrorReportReporter(errorReportConfiguration); var fswMock = container.FileSystemWatcherMock; var fileSystemWatcherStartTimesCalled = 0; fswMock.Setup(fsw => fsw.Start(It.IsAny <string>())).Callback(() => { fileSystemWatcherStartTimesCalled++; }); var errorReportReporter = container.ErrorReportReporter; //When errorReportReporter.Start(); errorReportReporter.Start(); //Then fileSystemWatcherStartTimesCalled.Should().Be(1); }
public void ErrorReportIsNotProcessedWhenItDoesNotExistOnDiskThoughFileSystemWatcherRaisedCreatedEvent() { StorageManager.InTemporaryDirectory(directory => { //Given var config = new ErrorReportConfiguration(directory, Path.Combine(directory, "processed")); var container = GetErrorReportReporter(config); var errorReportReporter = container.ErrorReportReporter; var gitHubIssueCreatorMock = container.GitHubIssueCreatorMock; gitHubIssueCreatorMock.Setup(gic => gic.CreateIssue(It.IsAny <ErrorReport>())); var fileSystemWatcherMock = container.FileSystemWatcherMock; var eventArgs = new FileSystemEventArgs(WatcherChangeTypes.Created, directory, "error-report.json"); errorReportReporter.Start(); //When fileSystemWatcherMock.Raise(fsw => fsw.Created += null, eventArgs); //Then gitHubIssueCreatorMock.Verify(gic => gic.CreateIssue(It.IsAny <ErrorReport>()), Times.Never); }); }
public Main(IGenericLoader <Measurement> measurementsLoader, IMaskIntensityResistanceInterpolatorFactory maskIntensityInterpolatorFactory, IGenericGridLoader <int> measurementGridLoader, IMeasurementGridProcessor measurementGridProcessor, IExposureTimeCalculator exposureTimeCalculator, IOutputWriter outputWriter, IBitmapProcessor bitmapProcessor, IErrorReportCreator errorReportCreator, ErrorReportConfiguration errorReportConfiguration, IErrorReportReporter errorReportReporter) { _measurementsLoader = measurementsLoader; _maskIntensityInterpolatorFactory = maskIntensityInterpolatorFactory; _measurementGridLoader = measurementGridLoader; _measurementGridProcessor = measurementGridProcessor; _exposureTimeCalculator = exposureTimeCalculator; _outputWriter = outputWriter; _bitmapProcessor = bitmapProcessor; _errorReportCreator = errorReportCreator; _errorReportConfiguration = errorReportConfiguration; errorReportReporter.Start(); }
public void AlreadyExistingErrorReportIsMovedToProcessedFolder() { StorageManager.InTemporaryDirectory(directory => { //Given var errorReport = new ErrorReport(); var processedFolder = Path.Combine(directory, "processed"); var json = JsonConvert.SerializeObject(errorReport); const string errorReportName = "error-report.json"; var filePath = Path.Combine(directory, errorReportName); var expectedFilePath = Path.Combine(processedFolder, errorReportName); File.WriteAllText(filePath, json); var config = new ErrorReportConfiguration(directory, processedFolder); var container = GetErrorReportReporter(config); var errorReportReporter = container.ErrorReportReporter; //When errorReportReporter.Start(); //Then File.Exists(expectedFilePath).Should().BeTrue(); }); }
public void IssueIsCreatedFromAlreadyExistingErrorReport() { StorageManager.InTemporaryDirectory(directory => { //Given var errorReport = new ErrorReport(); var processedFolder = Path.Combine(directory, "processed"); var json = JsonConvert.SerializeObject(errorReport); const string errorReportName = "error-report.json"; var filePath = Path.Combine(directory, errorReportName); File.WriteAllText(filePath, json); var config = new ErrorReportConfiguration(directory, processedFolder); var container = GetErrorReportReporter(config); var errorReportReporter = container.ErrorReportReporter; var githubIssueCreatorMock = container.GitHubIssueCreatorMock; githubIssueCreatorMock.Setup(gic => gic.CreateIssue(It.IsAny <ErrorReport>())); //When errorReportReporter.Start(); //Then githubIssueCreatorMock.Verify(gic => gic.CreateIssue(It.IsAny <ErrorReport>()), Times.Once); }); }
public void InvalidErrorReportCausesNoException() { StorageManager.InTemporaryDirectory(directory => { //Given var config = new ErrorReportConfiguration(directory, Path.Combine(directory, "processed")); var container = GetErrorReportReporter(config); var errorReportReporter = container.ErrorReportReporter; var gitHubIssueCreatorMock = container.GitHubIssueCreatorMock; gitHubIssueCreatorMock.Setup(gic => gic.CreateIssue(It.IsAny <ErrorReport>())); var fileSystemWatcherMock = container.FileSystemWatcherMock; var eventArgs = new FileSystemEventArgs(WatcherChangeTypes.Created, directory, "error-report.json"); var filePath = Path.Combine(directory, "error-report.json"); errorReportReporter.Start(); //When File.WriteAllText(filePath, "eijef9*()f397"); fileSystemWatcherMock.Raise(fsw => fsw.Created += null, eventArgs); //Then gitHubIssueCreatorMock.Verify(gic => gic.CreateIssue(It.IsAny <ErrorReport>()), Times.Never); }); }