Example #1
0
        public GivenACosmosDbBugDatabaseProcessor()
        {
            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.changesetProcessorMock = new Mock <IChangesetProcessor>();
            this.changesetProcessorMock.Setup(c => c.WorkItemCache).Returns(new Dictionary <string, List <WorkItem> >());
            this.webRequest            = new Mock <IWebRequest>();
            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.fileSystemMock         = new Mock <IFileSystem>();
            this.loggerMock             = new Mock <ILogger>();
            this.dataDocumentRepository = new Mock <IDataDocumentRepository>();
            this.someDllArgs            = new List <string>()
            {
                "--some", "dll", "-arguments"
            };
            this.someDllPath = "some/path/to/dll";

            this.sut = new CosmosDbBugDatabaseProcessor(bugDatabaseLoaderMock.Object, fileSystemMock.Object, webRequest.Object, loggerMock.Object, dataDocumentRepository.Object, SomeProjectName);
        }
Example #2
0
        private static int RunPerforceToCosmosDbCodeChurnProcessor(P4ExtractToCosmosDbCommandLineArgs 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 bugDatabaseFactory   = new BugDatabaseFactory();
            var bugDatabaseDllLoader = new BugDatabaseDllLoader(logger, bugDatabaseFactory);
            var webRequest           = new WebRequest(new HttpClientWrapperFactory(bugDatabaseFactory));
            var fileSystem           = new FileSystem();

            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 bugDatabaseProcessor = new CosmosDbBugDatabaseProcessor(bugDatabaseDllLoader, fileSystem, webRequest, logger, dataDocumentRepository, a.CosmosProjectName);
            var processor            = new PerforceCodeChurnProcessor(processWrapper, changesParser, describeParser, commandLineParser, bugDatabaseProcessor, logger, stopWatch, cosmosOutputProcessor, a);

            processor.QueryBugDatabase();
            return(processor.Extract());
        }