public void Error_NoCommitsInRepository()
        {
            // Setup
            // Create a empty hg repo
            var lDProjectFolderPath = LanguageDepotMock.ProjectFolderPath;

            MercurialTestHelper.InitializeHgRepo(lDProjectFolderPath);
            MercurialTestHelper.HgCreateBranch(lDProjectFolderPath, LcmCache.ModelVersion);
            MercurialTestHelper.CloneRepo(lDProjectFolderPath, _lfProject.ProjectDir);
            LanguageDepotMock.Server.Start();

            // Execute
            _synchronizeAction.Run(_lfProject);

            // Verify
            Assert.That(_env.Logger.GetErrors(),
                        Does.Contain("Cannot do first commit."));
            Assert.That(_lfProject.State.SRState, Is.EqualTo(ProcessingState.SendReceiveStates.HOLD));
        }
        public void Error_NewerBranch()
        {
            // Setup
            var lDProjectFolderPath = LanguageDepotMock.ProjectFolderPath;

            MercurialTestHelper.InitializeHgRepo(lDProjectFolderPath);
            MercurialTestHelper.HgCreateBranch(lDProjectFolderPath, LcmCache.ModelVersion);
            MercurialTestHelper.CreateFlexRepo(lDProjectFolderPath);
            MercurialTestHelper.CloneRepo(lDProjectFolderPath, _lfProject.ProjectDir);
            // Simulate a user with a newer FLEx version doing a S/R
            MercurialTestHelper.HgCreateBranch(lDProjectFolderPath, 7600000);
            MercurialTestHelper.HgCommit(lDProjectFolderPath, "Commit with newer FLEx version");
            LanguageDepotMock.Server.Start();

            // Execute
            _synchronizeAction.Run(_lfProject);

            // Verify
            Assert.That(_env.Logger.GetMessages(), Does.Contain("Allow data migration for project"));
            Assert.That(_lfProject.State.SRState, Is.EqualTo(ProcessingState.SendReceiveStates.SYNCING));
        }
        public void Error_DifferentBranch()
        {
            // Setup
            // Create a hg repo that doesn't contain a branch for the current model version
            const int modelVersion = 7000067;

            MagicStrings.SetMinimalModelVersion(modelVersion);
            var lDProjectFolderPath = LanguageDepotMock.ProjectFolderPath;

            MercurialTestHelper.InitializeHgRepo(lDProjectFolderPath);
            MercurialTestHelper.HgCreateBranch(lDProjectFolderPath, modelVersion);
            MercurialTestHelper.CreateFlexRepo(lDProjectFolderPath, modelVersion);
            MercurialTestHelper.CloneRepo(lDProjectFolderPath, _lfProject.ProjectDir);
            LanguageDepotMock.Server.Start();

            // Execute
            _synchronizeAction.Run(_lfProject);

            // Verify
            Assert.That(_lfProject.State.SRState, Is.EqualTo(ProcessingState.SendReceiveStates.SYNCING));
            Assert.That(ModelVersion, Is.EqualTo(modelVersion));
        }