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); }
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()); }