public void GetCollection_ActiveCollectionNotSet_ReturnsDefaultValue()
        {
            MongoDbWorkflowStore store = (MongoDbWorkflowStore)GetStore();
            var coll = store.GetCollection();

            Assert.AreEqual(MongoDbWorkflowStore.DefaultCollectionActive, coll.CollectionNamespace.CollectionName);
        }
Exemplo n.º 2
0
        protected virtual void InitializeWorkflowStore(MongoDbWorkflowStore mongoDbWorkflowStore)
        {
            mongoDbWorkflowStore.Clear();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage01Id, "Simple V0",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage01)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackageCyclic01Id, "Simple Cyclic V0.1",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackageCyclic01)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackageCyclic02Id, "Simple Cyclic V0.2",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackageCyclic02)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage02Id, "Package v.0.2",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage02)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage03Id, "Simple V0",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage03)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage04Id, "Simple V0",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage04)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage05Id, "Remote V0",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage05)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage06Id, "Simple V0.6 with delayed transition",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage06)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowPackage07Id, "Simple V0.7 with custom activity retry and transition",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowPackage07)).Wait();

            mongoDbWorkflowStore.SaveWorkflowConfigurationContent(WorkflowSigner01Id, "Signer v.0.1",
                                                                  WorkflowConfigurationsHelper.GetWorkflowConfiguration(WorkflowConfigurationsHelper.FlowSigner01)).Wait();
        }
Exemplo n.º 3
0
        private IWorkflowStore BuildWorkflowStore(bool mockWorkflowStore, bool nested)
        {
            if (mockWorkflowStore)
            {
                return(nested ? BuildWorkflowStoreNested().Object : BuildWorkflowStoreFlat().Object);
            }

            var password = new SecureString();

            password.AppendChar('f');
            password.AppendChar('l');
            password.AppendChar('o');
            password.AppendChar('w');

            var mongoClient = new MongoClient(new MongoClientSettings
            {
                Server         = new MongoServerAddress("localhost", 27017),
                Credential     = MongoCredential.CreateCredential("admin", "flow", password),
                ConnectionMode = ConnectionMode.Automatic
            });

            var mongoDatabase = mongoClient.GetDatabase("workflow");
            var mongoStore    = new MongoDbWorkflowStore(mongoDatabase);

            InitializeWorkflowStore(mongoStore);
            return(mongoStore);
        }
Exemplo n.º 4
0
        public IWorkflowStore GetWorkflowStore(ConnectionModel connectionModel)
        {
            IWorkflowStore workflowStore;

            if (connectionModel.WorkflowStoreType == WorkflowStoreType.MongoDb)
            {
                MongoUrlBuilder urlBuilder = new MongoUrlBuilder();
                urlBuilder.Server = new MongoServerAddress(connectionModel.Host, connectionModel.Port.Value);
                if (!String.IsNullOrWhiteSpace(connectionModel.User))
                {
                    urlBuilder.Username = connectionModel.User;
                }
                //if (!String.IsNullOrWhiteSpace(pwd)) urlBuilder.Password = pwd;

                var url    = urlBuilder.ToMongoUrl();
                var client = new MongoClient(url);
                var db     = client.GetDatabase(connectionModel.Database);

                workflowStore = new MongoDbWorkflowStore(db, connectionModel.ActiveCollection, connectionModel.CompletedCollection);
            }
            else
            {
                throw new NotImplementedException();
            }

            return(workflowStore);
        }
Exemplo n.º 5
0
        public IWorkflowStore GetWorkflowStore(ConnectionModel connectionModel)
        {
            IWorkflowStore workflowStore;

            if (connectionModel.WorkflowStoreType == WorkflowStoreType.MongoDb)
            {
                MongoUrlBuilder urlBuilder = new MongoUrlBuilder();
                urlBuilder.Server = new MongoServerAddress(connectionModel.Host, connectionModel.Port.Value);
                if (!String.IsNullOrWhiteSpace(connectionModel.User))
                {
                    urlBuilder.Username = connectionModel.User;
                }
                if (!String.IsNullOrWhiteSpace(connectionModel.Password) && !String.IsNullOrEmpty(connectionModel.Key))
                {
                    byte[] key = Convert.FromBase64String(connectionModel.Key);
                    string pwd = _encryptionProvider.SimpleDecrypt(connectionModel.Password, key);
                    urlBuilder.Password = pwd;
                }

                var url    = urlBuilder.ToMongoUrl();
                var client = new MongoClient(url);
                var db     = client.GetDatabase(connectionModel.Database);

                workflowStore = new MongoDbWorkflowStore(db, connectionModel.ActiveCollection, connectionModel.CompletedCollection);
            }
            else
            {
                throw new NotImplementedException();
            }

            return(workflowStore);
        }
        public void GetCollection_ActiveCollectionSet_ReturnsCorrectValue()
        {
            const string         testCollection = "WorkflowTest";
            MongoDbWorkflowStore store          = (MongoDbWorkflowStore)GetStore();

            store.CollectionActive = testCollection;
            var coll = store.GetCollection();

            Assert.AreEqual(testCollection, coll.CollectionNamespace.CollectionName);
            _database.DropCollection(testCollection);
        }