Example #1
0
        public void EnsureClone_NotFlexProject_SetsRecoverableError()
        {
            // Setup
            var projectDir = Path.Combine(_env.Settings.WebWorkDirectory, _projectCode);

            Directory.CreateDirectory(projectDir);
            var lfProject = LanguageForgeProject.Create(_projectCode);
            var action    = new EnsureCloneActionDoubleMockErrorCondition(_env.Settings, _env.Logger, _mongoProjectRecordFactory, _mongoConnection,
                                                                          "Clone failure: clone is not a FLEx project: Clone deleted.");

            // Execute
            action.Run(lfProject);

            // Verify
            Assert.That(lfProject.State.SRState, Is.EqualTo(ProcessingState.SendReceiveStates.ERROR));
            Assert.That(lfProject.State.ErrorCode, Is.EqualTo((int)ProcessingState.ErrorCodes.NoFlexProject));
            Assert.That(lfProject.State.ErrorMessage,
                        Is.EqualTo(string.Format("Recoverable error during initial clone of {0}: Clone failure: clone is not a FLEx project: Clone deleted.", _projectCode)));
        }
        public void EnsureClone_CloneEmptyRepo_SetsRecoverableError()
        {
            // Setup
            var projectDir = Path.Combine(_env.Settings.WebWorkDirectory, _projectCode);

            Directory.CreateDirectory(projectDir);
            var lfProject = LanguageForgeProject.Create(_projectCode);
            var action    = new EnsureCloneActionDoubleMockErrorCondition(_env.Settings, _env.Logger, _mongoProjectRecordFactory, _mongoConnection,
                                                                          "Clone failure: new repository with no commits. Clone deleted.");

            // Execute
            action.Run(lfProject);

            // Verify
            Assert.That(lfProject.State.SRState, Is.EqualTo(ProcessingState.SendReceiveStates.ERROR));
            Assert.That(lfProject.State.ErrorCode, Is.EqualTo((int)ProcessingState.ErrorCodes.EmptyProject));
            Assert.That(lfProject.State.ErrorMessage,
                        Is.EqualTo(
                            $"Recoverable error during initial clone of {_projectCode}: Clone failure: new repository with no commits. Clone deleted."));
        }