示例#1
0
        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)));
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }