Esempio n. 1
0
        public void Execute_FileWithHashAlreadyExists_ThrowsException()
        {
            int        projectId  = new Random().Next(1, 1000);
            string     filePath   = Path.Combine(AppContext.BaseDirectory, "test.log");
            FileDetail fileDetail = new FileDetail();

            fileDetail.Hash = Guid.NewGuid().ToString();

            _fileUtils.GetFileHash(filePath).Returns(fileDetail);

            LogFileModel model = DataHelper.CreateLogFileModel();

            _logFileRepo.GetByHash(projectId, fileDetail.Hash).Returns(model);

            // execute
            TestDelegate del = () => _createLogFileCommand.Execute(projectId, filePath);

            // assert
            Assert.Throws <ValidationException>(del);

            _fileUtils.Received(1).GetFileHash(filePath);
            _logFileRepo.Received(1).GetByHash(projectId, fileDetail.Hash);

            // we shouldn't have even tried to validate or do the insert
            _logFileValidator.DidNotReceive().Validate(Arg.Any <LogFileModel>());
            _dbContext.DidNotReceive().ExecuteNonQuery(Arg.Any <string>(), Arg.Any <object>());
        }
Esempio n. 2
0
        public void Execute_ValidationSucceeds_JobsRegisteredForLogFiles()
        {
            int id = new Random().Next(1, 1000);
            ProjectRequestAggregateModel model = DataHelper.CreateProjectRequestAggregateModel();

            _projectRequestAggregateRepo.GetById(id).Returns(model);

            LogFileModel log1 = DataHelper.CreateLogFileModel(model.ProjectId);

            log1.Id = 1;
            LogFileModel log2 = DataHelper.CreateLogFileModel(model.ProjectId);

            log2.Id = 2;
            LogFileModel log3 = DataHelper.CreateLogFileModel(model.ProjectId);

            log3.Id = 3;

            _logFileRepo.GetByProject(model.ProjectId).Returns(new LogFileModel[] { log1, log2, log3 });

            // execute
            _deleteProjectRequestAggregateCommand.Execute(id);

            // assert
            _logFileRepo.Received(1).GetByProject(model.ProjectId);
            _setLogFileUnprocessedCommand.Received(1).Execute(log1.Id);
            _setLogFileUnprocessedCommand.Received(1).Execute(log2.Id);
            _setLogFileUnprocessedCommand.Received(1).Execute(log3.Id);
        }
Esempio n. 3
0
        public void Execute_ValidationSucceeds_JobsRegisteredForLogFiles()
        {
            ProjectRequestAggregateModel model = DataHelper.CreateProjectRequestAggregateModel();

            _projectRequestAggregateValidator.Validate(model).Returns(new ValidationResult());

            LogFileModel log1 = DataHelper.CreateLogFileModel(model.ProjectId);

            log1.Id = 1;
            LogFileModel log2 = DataHelper.CreateLogFileModel(model.ProjectId);

            log2.Id = 2;
            LogFileModel log3 = DataHelper.CreateLogFileModel(model.ProjectId);

            log3.Id = 3;

            _logFileRepo.GetByProject(model.ProjectId).Returns(new LogFileModel[] { log1, log2, log3 });

            // execute
            _createProjectRequestAggregateCommand.Execute(model);

            // assert
            _logFileRepo.Received(1).GetByProject(model.ProjectId);
            _setLogFileUnprocessedCommand.Received(1).Execute(log1.Id);
            _setLogFileUnprocessedCommand.Received(1).Execute(log2.Id);
            _setLogFileUnprocessedCommand.Received(1).Execute(log3.Id);
        }
Esempio n. 4
0
        public void Execute_RequestsFound_AggregatesLoadedAndLogFileMarkedAsProcessed()
        {
            int logFileId = new Random().Next(1, 1000);

            // setup
            RequestModel[] requests = { DataHelper.CreateRequestModel(logFileId), DataHelper.CreateRequestModel(logFileId) };
            _requestRepo.GetByLogFile(logFileId).Returns(requests);

            LogFileModel logFile = DataHelper.CreateLogFileModel();

            logFile.Id = logFileId;
            _logFileRepo.GetById(logFileId).Returns(logFile);

            // execute
            _resetRequestAggregateCommand.Execute(logFileId);

            // assert
            _requestRepo.Received(1).GetByLogFile(logFileId);
            _logFileRepo.Received(1).GetById(logFileId);
            _projectRequestAggregateRepo.Received(1).GetByProject(logFile.ProjectId);
        }
Esempio n. 5
0
        public void Files_ValidProjectId_GetsLogFilesFromDatabase()
        {
            int projectId = new Random().Next(1, 1000);

            // setup
            var currentUser = new UserIdentity()
            {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var browser = new Browser((bootstrapper) =>
                                      bootstrapper.Module(new ProjectModule(_dbContext, _projectValidator, _createProjectCommand, _deleteProjectCommand, _projectRepo, _logFileRepo, _requestRepo, _projectRequestAggregateRepo))
                                      .RequestStartup((container, pipelines, context) => {
                context.CurrentUser = currentUser;
            })
                                      );
            LogFileModel log1 = DataHelper.CreateLogFileModel();
            LogFileModel log2 = DataHelper.CreateLogFileModel();
            LogFileModel log3 = DataHelper.CreateLogFileModel();

            _logFileRepo.GetByProject(projectId).Returns(new LogFileModel[] { log1, log2, log3 });

            // execute
            var url      = Actions.Project.Files(projectId);
            var response = browser.Post(url, (with) =>
            {
                with.HttpRequest();
                with.FormsAuth(currentUser.Id, new Nancy.Authentication.Forms.FormsAuthenticationConfiguration());
            });

            // assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            _logFileRepo.Received(1).GetByProject(projectId);

            IEnumerable <LogFileViewModel> result = JsonConvert.DeserializeObject <IEnumerable <LogFileViewModel> >(response.Body.AsString());

            Assert.AreEqual(3, result.Count());
        }