public void WhenExtractWorkItemShouldCallProcessorWithCorrectParameters() { var sutWorkItem = new DataFromFileToCosmosDb <WorkItem>(loggerMock.Object, fileSystemMock.Object, outputProcessorMock.Object, jsonListParserMockWorkItem.Object, somePath, someCosmosDbProjectName); var fileMock = new Mock <IFile>(); fileMock .Setup(f => f.FileName) .Returns("SomeFile.json"); this.jsonListParserMockWorkItem.Setup(w => w.ParseFile(It.IsAny <string>())).Returns(new List <WorkItem>() { new WorkItem { ClosedDate = DateTime.Now, ChangesetId = changesetId } }); this.fileSystemMock .Setup(f => f.GetFiles(It.IsAny <string>(), It.IsAny <string>())) .Returns(new List <IFile>() { fileMock.Object }); sutWorkItem.Extract(); outputProcessorMock.Verify(x => x.ProcessOutput(OutputType.CosmosDb, someCosmosDbProjectName, It.Is <Dictionary <DateTime, Dictionary <string, WorkItem> > >(item => item.Count == 1))); }
public GivenADataFromFileToCosmosDb() { loggerMock = new Mock <ILogger>(); fileSystemMock = new Mock <IFileSystem>(); outputProcessorMock = new Mock <IOutputProcessor>(); jsonListParserMockDailyCodeChurn = new Mock <IJsonListParser <DailyCodeChurn> >(); jsonListParserMockWorkItem = new Mock <IJsonListParser <WorkItem> >(); sut = new DataFromFileToCosmosDb <DailyCodeChurn>(loggerMock.Object, fileSystemMock.Object, outputProcessorMock.Object, jsonListParserMockDailyCodeChurn.Object, somePath, someCosmosDbProjectName); }
private static int RunCodeChurnFromFiles(DataFromFilesToCosmosDbCommandLineArgs a) { var fileSystem = new FileSystem(); 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); IDataFromFileToCosmosDb codeChurnFromFileToCosmosDb; if (a.DocumentType == DocumentType.CodeChurn) { codeChurnFromFileToCosmosDb = new DataFromFileToCosmosDb <DailyCodeChurn>(logger, fileSystem, cosmosOutputProcessor, new JsonListParser <DailyCodeChurn>(new FileStreamFactory()), a.Path, a.CosmosProjectName); } else { codeChurnFromFileToCosmosDb = new DataFromFileToCosmosDb <WorkItem>(logger, fileSystem, cosmosOutputProcessor, new JsonListParser <WorkItem>(new FileStreamFactory()), a.Path, a.CosmosProjectName); } var output = codeChurnFromFileToCosmosDb.Extract(); return(output); }