public void Setup() { if (SIL.PlatformUtilities.Platform.IsWindows) { const string tempPath = @"C:\Tmp"; Environment.SetEnvironmentVariable("TMP", tempPath); Environment.SetEnvironmentVariable("TEMP", tempPath); Directory.CreateDirectory(tempPath); } _env = new TestEnvironment(); _languageDepotFolder = new TemporaryFolder(TestContext.CurrentContext.Test.Name + Path.GetRandomFileName()); _lDSettings = new LfMergeSettingsDouble(_languageDepotFolder.Path); Directory.CreateDirectory(_lDSettings.WebWorkDirectory); LanguageDepotMock.ProjectFolderPath = Path.Combine(_lDSettings.WebWorkDirectory, TestContext.CurrentContext.Test.Name, TestLangProj); Directory.CreateDirectory(LanguageDepotMock.ProjectFolderPath); _lfProject = LanguageForgeProject.Create(TestLangProj); _mongoProjectRecordFactory = MainClass.Container.Resolve <LfMerge.Core.MongoConnector.MongoProjectRecordFactory>() as MongoProjectRecordFactoryDouble; // Even though the EnsureCloneActionWithoutMongo class has "WithoutMongo" in the name, the EnsureClone class which it inherits from // needs an IMongoConnection argument in the constructor, so we have to create a MongoConnectionDouble that we're not going to use here. var _mongoConnection = MainClass.Container.Resolve <IMongoConnection>(); _EnsureCloneAction = new EnsureCloneActionWithoutMongo(_env.Settings, _env.Logger, _mongoProjectRecordFactory, _mongoConnection); LanguageDepotMock.Server = new MercurialServer(LanguageDepotMock.ProjectFolderPath); }
protected LanguageForgeProject(string projectCode, LfMergeSettings settings = null) { _settings = settings ?? MainClass.Container.Resolve<LfMergeSettings>(); _projectCode = projectCode.ToLowerInvariant(); _state = ProcessingState.Deserialize(projectCode); IsInitialClone = false; }
public EnsureCloneActionDoubleMockErrorCondition(LfMergeSettings settings, ILogger logger, MongoProjectRecordFactory projectRecordFactory, IMongoConnection connection, string cloneResult) : base(settings, logger, projectRecordFactory, connection) { _cloneResult = cloneResult; }
public void Setup() { _env = new TestEnvironment(); _env.Settings.CommitWhenDone = true; _counts = MainClass.Container.Resolve <EntryCounts>(); _lfProject = LanguageForgeProject.Create(testProjectCode); TestEnvironment.CopyFwProjectTo(testProjectCode, _env.Settings.WebWorkDirectory); // Guids are named for the diffs for the modified test project _testEntryGuid = Guid.Parse(testEntryGuidStr); _testCreatedEntryGuid = Guid.Parse(testCreatedEntryGuidStr); _testDeletedEntryGuid = Guid.Parse(testDeletedEntryGuidStr); _languageDepotFolder = new TemporaryFolder("SyncTestLD" + Path.GetRandomFileName()); _lDSettings = new LfMergeSettingsDouble(_languageDepotFolder.Path); Directory.CreateDirectory(_lDSettings.WebWorkDirectory); LanguageDepotMock.ProjectFolderPath = Path.Combine(_lDSettings.WebWorkDirectory, testProjectCode); _mongoConnection = MainClass.Container.Resolve <IMongoConnection>() as MongoConnectionDouble; if (_mongoConnection == null) { throw new AssertionException("Sync tests need a mock MongoConnection that stores data in order to work."); } _recordFactory = MainClass.Container.Resolve <MongoProjectRecordFactory>() as MongoProjectRecordFactoryDouble; if (_recordFactory == null) { throw new AssertionException("Sync tests need a mock MongoProjectRecordFactory in order to work."); } _transferFdoToMongo = new TransferFdoToMongoAction(_env.Settings, _env.Logger, _mongoConnection, _recordFactory); }
public EnsureCloneActionDouble(LfMergeSettings settings, ILogger logger, MongoProjectRecordFactory projectRecordFactory, IMongoConnection connection, bool projectExists = true, bool throwAuthorizationException = true) : base(settings, logger, projectRecordFactory, connection) { _projectExists = projectExists; _throwAuthorizationException = throwAuthorizationException; }
public Queue(LfMergeSettings settings, QueueNames name) { if (name == QueueNames.None) { throw new ArgumentException("Can't create a queue of type QueueNames.None", "name"); } Settings = settings; Name = name; }
public FwProject(LfMergeSettings settings, string database) { _project = new ProjectIdentifier(settings.FdoDirectorySettings, database); _fdoUi = new ConsoleFdoUi(_progress.SynchronizeInvoke); Cache = TryGetFdoCache(); if (Cache != null) { ServiceLocator = new FwServiceLocatorCache(Cache.ServiceLocator); } }
public static void CreateQueueDirectories(LfMergeSettings settings) { foreach (QueueNames queueName in Enum.GetValues(typeof(QueueNames))) { var queueDir = settings.GetQueueDirectory(queueName); if (queueDir != null) { Directory.CreateDirectory(queueDir); } } }
public void SetUpForFdoTests() { LanguageForgeFolder = new TemporaryFolder("FdoTestFixture"); env = new TestEnvironment( resetLfProjectsDuringCleanup: false, languageForgeServerFolder: LanguageForgeFolder ); Settings = new LfMergeSettingsDouble(LanguageForgeFolder.Path); TestEnvironment.CopyFwProjectTo(testProjectCode, Settings.FdoDirectorySettings.DefaultProjectsDirectory); lfProj = LanguageForgeProject.Create(testProjectCode); }
public void Setup() { MagicStrings.SetMinimalModelVersion(FdoCache.ModelVersion); _env = new TestEnvironment(); _languageDepotFolder = new TemporaryFolder(TestContext.CurrentContext.Test.Name + Path.GetRandomFileName()); _lDSettings = new LfMergeSettingsDouble(_languageDepotFolder.Path); Directory.CreateDirectory(_lDSettings.WebWorkDirectory); LanguageDepotMock.ProjectFolderPath = Path.Combine(_lDSettings.WebWorkDirectory, TestLangProj); Directory.CreateDirectory(LanguageDepotMock.ProjectFolderPath); _lfProject = LanguageForgeProject.Create(TestLangProj); _synchronizeAction = new SynchronizeAction(_env.Settings, _env.Logger); _workDir = Directory.GetCurrentDirectory(); LanguageDepotMock.Server = new MercurialServer(LanguageDepotMock.ProjectFolderPath); }
public FwProject(LfMergeSettings settings, string database) { // We don't want to use a global writing system store, so we insert a null singleton if (!SingletonsContainer.Contains <CoreGlobalWritingSystemRepository>()) { SingletonsContainer.Add(typeof(CoreGlobalWritingSystemRepository).FullName, null); } _project = new ProjectIdentifier(settings.LcmDirectorySettings, database); _lcmUi = new ConsoleLcmUi(_progress.SynchronizeInvoke); Cache = TryGetLcmCache(); if (Cache != null) { ServiceLocator = new FwServiceLocatorCache(Cache.ServiceLocator); } }
private static bool CheckSetup(LfMergeSettings settings) { var homeFolder = Environment.GetEnvironmentVariable("HOME") ?? "/var/www"; string[] folderPaths = { Path.Combine(homeFolder, ".local"), Path.GetDirectoryName(settings.WebWorkDirectory) }; foreach (string folderPath in folderPaths) { if (!Directory.Exists(folderPath)) { MainClass.Logger.Notice("Folder '{0}' doesn't exist", folderPath); return(false); } } return(true); }
public void Dispose() { if (_mongoConnection != null) { _mongoConnection.Reset(); } MainClass.Container.Dispose(); MainClass.Container = null; if (_resetLfProjectsDuringCleanup) { LanguageForgeProjectAccessor.Reset(); } _languageForgeServerFolder.Dispose(); Settings = null; DirectoryFinder.UnitTestHelper.ResetStaticVars(); }
public TestEnvironment(bool registerSettingsModelDouble = true, bool registerProcessingStateDouble = true, bool resetLfProjectsDuringCleanup = true, TemporaryFolder languageForgeServerFolder = null, bool registerLfProxyMock = true) { _resetLfProjectsDuringCleanup = resetLfProjectsDuringCleanup; _languageForgeServerFolder = languageForgeServerFolder ?? new TemporaryFolder(TestName + Path.GetRandomFileName()); Environment.SetEnvironmentVariable("FW_CommonAppData", _languageForgeServerFolder.Path); MainClass.Container = RegisterTypes(registerSettingsModelDouble, registerProcessingStateDouble, _languageForgeServerFolder.Path, registerLfProxyMock).Build(); Settings = MainClass.Container.Resolve <LfMergeSettings>(); MainClass.Logger = MainClass.Container.Resolve <ILogger>(); Directory.CreateDirectory(Settings.FdoDirectorySettings.ProjectsDirectory); Directory.CreateDirectory(Settings.FdoDirectorySettings.TemplateDirectory); Directory.CreateDirectory(Settings.StateDirectory); _mongoConnection = MainClass.Container.Resolve <IMongoConnection>() as MongoConnectionDouble; }
public void Dispose() { _mongoConnection?.Reset(); MainClass.Container?.Dispose(); MainClass.Container = null; if (_resetLfProjectsDuringCleanup) { LanguageForgeProjectAccessor.Reset(); } _languageForgeServerFolder?.Dispose(); Settings = null; if (_releaseSingletons) { SingletonsContainer.Release(); } Environment.SetEnvironmentVariable("FW_CommonAppData", null); }
public TestEnvironment(bool registerSettingsModelDouble = true, bool registerProcessingStateDouble = true, bool resetLfProjectsDuringCleanup = true, TemporaryFolder languageForgeServerFolder = null) { _resetLfProjectsDuringCleanup = resetLfProjectsDuringCleanup; _languageForgeServerFolder = languageForgeServerFolder ?? new TemporaryFolder(TestName + Path.GetRandomFileName()); Environment.SetEnvironmentVariable("FW_CommonAppData", _languageForgeServerFolder.Path); MainClass.Container = RegisterTypes(registerSettingsModelDouble, registerProcessingStateDouble, _languageForgeServerFolder.Path).Build(); Settings = MainClass.Container.Resolve <LfMergeSettings>(); MainClass.Logger = MainClass.Container.Resolve <ILogger>(); Directory.CreateDirectory(Settings.LcmDirectorySettings.ProjectsDirectory); Directory.CreateDirectory(Settings.LcmDirectorySettings.TemplateDirectory); Directory.CreateDirectory(Settings.StateDirectory); _mongoConnection = MainClass.Container.Resolve <IMongoConnection>() as MongoConnectionDouble; // only call SingletonsContainer.Release() at the end if we actually create the // singleton _releaseSingletons = !SingletonsContainer.Contains <CoreGlobalWritingSystemRepository>(); }
public EnsureCloneAction(LfMergeSettings settings, ILogger logger, MongoProjectRecordFactory projectRecordFactory, IMongoConnection connection) : base(settings, logger) { _projectRecordFactory = projectRecordFactory; _connection = connection; }
public NoneAction(LfMergeSettings settings, ILogger logger) : base(settings, logger) { }
public QueueDouble(LfMergeSettings settings, QueueNames name) : base(settings, name) { }
public CommitAction(LfMergeSettings settings, ILogger logger) : base(settings, logger) { }
public void SetSettings(LfMergeSettings settings) { Settings = settings; }
public ProcessingState(string projectCode, LfMergeSettings settings) : this() { ProjectCode = projectCode; SetSettings(settings); }
public Factory(LfMergeSettings settings) { Settings = settings; }
public TransferMongoToLcmAction(LfMergeSettings settings, ILogger logger, IMongoConnection conn, MongoProjectRecordFactory factory, EntryCounts entryCounts) : base(settings, logger) { EntryCounts = entryCounts; _connection = conn; _projectRecordFactory = factory; }
public EnsureCloneActionDoubleMockingInitialTransfer(LfMergeSettings settings, ILogger logger, MongoProjectRecordFactory projectRecordFactory, IMongoConnection connection, bool projectExists = true) : base(settings, logger, projectRecordFactory, connection, projectExists) { InitialCloneWasRun = false; }
public TransferFdoToMongoAction(LfMergeSettings settings, ILogger logger, IMongoConnection conn, MongoProjectRecordFactory projectRecordFactory) : base(settings, logger) { _connection = conn; _projectRecordFactory = projectRecordFactory; }
public ProcessingStateDouble(string projectCode, LfMergeSettings settings) : base(projectCode, settings) { SavedStates = new List <ProcessingState.SendReceiveStates>(); }
public ProcessingStateFactoryDouble(LfMergeSettings settings) { Settings = settings; }
public SyslogProgress(ILogger logger, LfMergeSettings settings) { Logger = logger; ShowVerbose = settings.VerboseProgress; }
protected Action(LfMergeSettings settings, ILogger logger) { Settings = settings; Logger = logger; Progress = MainClass.Container.Resolve <IProgress>(); }