Exemplo n.º 1
0
        public void WhenProcessCacheCacheWithEmptyCacheOutputShouldDoNothing()
        {
            this.bugDatabaseProcessor = new BugDatabaseProcessor(this.bugDatabaseLoaderMock.Object, this.webRequest.Object, this.fileSystemMock.Object, this.workItemParser.Object, this.loggerMock.Object, null);
            this.bugDatabaseProcessor.ProcessCache(this.changesetProcessorMock.Object);

            this.changesetProcessorMock.Verify(c => c.WorkItemCache, Times.Never);
        }
Exemplo n.º 2
0
        public GivenABugDatabaseProcessor()
        {
            this.bugDatabaseProviderMock = new Mock <IBugDatabaseProvider>();
            this.bugDatabaseProviderMock.Setup(b => b.ProcessArgs(It.IsAny <IEnumerable <string> >())).Returns(0);
            this.bugDatabaseProviderMock.Setup(b => b.Process()).Returns(new Dictionary <DateTime, Dictionary <string, WorkItem> >()
            {
                {
                    new DateTime(2019, 04, 11),
                    new Dictionary <string, WorkItem>()
                    {
                        {
                            "SomeChangeSetId",
                            new WorkItem
                            {
                                ChangesetId = "SomeChangeSetId",
                                ClosedDate  = new DateTime(2019, 04, 11),
                                WorkItemId  = "1"
                            }
                        }
                    }
                }
            });

            this.bugDatabaseLoaderMock = new Mock <IBugDatabaseDllLoader>();
            this.bugDatabaseLoaderMock
            .Setup(b => b.Load(It.IsAny <string>(), It.IsAny <IEnumerable <string> >(), It.IsAny <IWebRequest>()))
            .Returns(bugDatabaseProviderMock.Object);

            this.webRequest = new Mock <IWebRequest>();

            this.fileSystemMock = new Mock <IFileSystem>();

            this.workItemParser = new Mock <IJsonListParser <WorkItem> >();
            this.workItemParser.Setup(w => w.ParseFile(It.IsAny <string>())).Returns(new List <WorkItem>()
            {
                new WorkItem
                {
                    ChangesetId = "SomeChangeSetId",
                    ClosedDate  = new DateTime(2019, 04, 11),
                    WorkItemId  = "1"
                }
            });

            this.loggerMock = new Mock <ILogger>();

            this.changesetProcessorMock = new Mock <IChangesetProcessor>();
            this.changesetProcessorMock.Setup(c => c.WorkItemCache).Returns(new Dictionary <string, List <WorkItem> >());

            this.someDllPath = "some/path/to/dll";
            this.someDllArgs = new List <string>()
            {
                "--some", "dll", "-arguments"
            };
            this.bugDatabaseProcessor = new BugDatabaseProcessor(this.bugDatabaseLoaderMock.Object, this.webRequest.Object, this.fileSystemMock.Object, this.workItemParser.Object, this.loggerMock.Object, "some\\path\\to\\cache");
        }
Exemplo n.º 3
0
        private static int RunGitCodeChurnProcessor(GitExtractCommandLineArgs a)
        {
            var processWrapper       = new ProcessWrapper();
            var commandLineParser    = new CommandLineParser();
            var gitLogParser         = new GitLogParser();
            var logger               = new ConsoleLoggerWithTimestamp();
            var outputProcessor      = new JsonOutputProcessor(new DataConverter(), new FileStreamFactory(), logger);
            var bugDatabaseFactory   = new BugDatabaseFactory();
            var bugDatabaseDllLoader = new BugDatabaseDllLoader(logger, bugDatabaseFactory);
            var webRequest           = new WebRequest(new HttpClientWrapperFactory(bugDatabaseFactory));
            var fileSystem           = new FileSystem();
            var jsonParser           = new JsonListParser <WorkItem>(new FileStreamFactory());
            var bugDatabaseProcessor = new BugDatabaseProcessor(bugDatabaseDllLoader, webRequest, fileSystem, jsonParser, logger, a.BugDatabaseOutputFile);
            var processor            = new GitCodeChurnProcessor(commandLineParser, processWrapper, gitLogParser, outputProcessor, bugDatabaseProcessor, logger, a);

            processor.QueryBugDatabase();
            return(processor.Extract());
        }
Exemplo n.º 4
0
        private static int RunPerforceCodeChurnProcessor(P4ExtractCommandLineArgs a)
        {
            var processWrapper       = new ProcessWrapper();
            var changesParser        = new ChangesParser();
            var describeParser       = new DescribeParser();
            var commandLineParser    = new CommandLineParser();
            var logger               = new ConsoleLoggerWithTimestamp();
            var stopWatch            = new StopWatchWrapper();
            var outputProcessor      = new JsonOutputProcessor(new DataConverter(), new FileStreamFactory(), logger);
            var bugDatabaseFactory   = new BugDatabaseFactory();
            var bugDatabaseDllLoader = new BugDatabaseDllLoader(logger, bugDatabaseFactory);
            var webRequest           = new WebRequest(new HttpClientWrapperFactory(bugDatabaseFactory));
            var fileSystem           = new FileSystem();
            var jsonParser           = new JsonListParser <WorkItem>(new FileStreamFactory());
            var bugDatabaseProcessor = new BugDatabaseProcessor(bugDatabaseDllLoader, webRequest, fileSystem, jsonParser, logger, a.BugDatabaseOutputFile);
            var processor            = new PerforceCodeChurnProcessor(processWrapper, changesParser, describeParser, commandLineParser, bugDatabaseProcessor, logger, stopWatch, outputProcessor, a);

            processor.QueryBugDatabase();
            return(processor.Extract());
        }
Exemplo n.º 5
0
        private static int RunGitToCosmosDbCodeChurnProcessor(GitExtractToCosmosDbCommandLineArgs a)
        {
            var processWrapper         = new ProcessWrapper();
            var commandLineParser      = new CommandLineParser();
            var gitLogParser           = new GitLogParser();
            var logger                 = new ConsoleLoggerWithTimestamp();
            var cosmosConnection       = new CosmosConnection(new DatabaseFactory(a, JsonSerializerSettingsFactory.CreateDefaultSerializerSettingsForCosmosDB()), a.DatabaseId, Properties.Settings.Default.CosmosBulkBatchSize);
            var dataDocumentRepository = new DataDocumentRepository(cosmosConnection, a.CodeChurnCosmosContainer);
            var cosmosOutputProcessor  = new CosmosDbOutputProcessor(logger, dataDocumentRepository, new DataConverter(), a.CosmosProjectName, Properties.Settings.Default.CosmosBulkBatchSize);
            var bugDatabaseFactory     = new BugDatabaseFactory();
            var bugDatabaseDllLoader   = new BugDatabaseDllLoader(logger, bugDatabaseFactory);
            var webRequest             = new WebRequest(new HttpClientWrapperFactory(bugDatabaseFactory));
            var fileSystem             = new FileSystem();
            var jsonParser             = new JsonListParser <WorkItem>(new FileStreamFactory());
            var bugDatabaseProcessor   = new BugDatabaseProcessor(bugDatabaseDllLoader, webRequest, fileSystem, jsonParser, logger, string.Empty);
            //, a.BugDatabaseOutputFile

            var processor = new GitCodeChurnProcessor(commandLineParser, processWrapper, gitLogParser, cosmosOutputProcessor, bugDatabaseProcessor, logger, a);

            processor.QueryBugDatabase();

            return(processor.Extract());
        }