public DslFactoryFixture()
        {
            factory = new DslFactory();
            mocks = new MockRepository();
            mockedDslEngine = mocks.DynamicMock<DslEngine>();
            mockCache = mocks.DynamicMock<IDslEngineCache>();
        	
			mockCache.WriteLock(null);
        	LastCall.Repeat.Any()
        		.IgnoreArguments()
        		.Do((Action<CacheAction>) ExecuteCachedAction);
			
			mockCache.ReadLock(null);
			LastCall.Repeat.Any()
				.IgnoreArguments()
				.Do((Action<CacheAction>)ExecuteCachedAction);
            
			IDslEngineStorage mockStorage = mocks.DynamicMock<IDslEngineStorage>();
            Assembly assembly = Assembly.GetCallingAssembly();
            context = new CompilerContext();
            context.GeneratedAssembly = assembly;
            mockedDslEngine.Storage = mockStorage;
            mockedDslEngine.Cache = mockCache;

            SetupResult.For(mockStorage.GetMatchingUrlsIn("", ref testUrl)).Return(new string[] { testUrl });
            SetupResult.For(mockStorage.IsUrlIncludeIn(null, null, null))
                .IgnoreArguments()
                .Return(true);
        }
Exemple #2
0
        private static void Main()
        {
            var factory = new DslFactory();
            factory.Register<DeclerativeDslBase>(new DeclerativeDslEngine());

           while (true)
            {

                var dsl = factory.Create<DeclerativeDslBase>("Declerative.dsl");
                dsl.Prepare();
                
               dsl.Execute(
                    new Order { Total = 5000 },
                    new Customer { IsPreferred = false });
                dsl.Execute(
                    new Order { Total = 5000 },
                    new Customer { IsPreferred = true });

                dsl.Execute(
                   new Order { Total = 10 },
                   new Customer { IsPreferred = true });

                Console.ReadKey();
            }
        }
Exemple #3
0
        public void When_file_is_changed_will_automatically_get_new_version()
        {
            DslFactory factory = new DslFactory();

            factory.BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
            factory.Register <DemoDslBase>(new DemoDslEngine());
            File.WriteAllText(path, "log 'test'");

            DemoDslBase demo = factory.Create <DemoDslBase>(path);

            demo.Execute();
            Assert.Equal("test", demo.Messages[0]);

            File.WriteAllText(path, "log 'changed'");
            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(200);                //let it time to refresh
                demo = factory.Create <DemoDslBase>(path);
                demo.Execute();
                if (demo.Messages[0] == "changed")
                {
                    break;
                }
            }
            Assert.Equal("changed", demo.Messages[0]);
        }
        private static DslFactory CreateFactory()
        {
            DslFactory dslFactory = new DslFactory();

            dslFactory.Register <EtlProcess>(new EtlDslEngine());
            return(dslFactory);
        }
Exemple #5
0
        static void Main()
        {
            //add the DSL factory
            var factory = new DslFactory();

            //register type
            //factory.Register<BaseOrderActionsDSL>(new OrderActionsDslEngine());

            //load dsl script
            //BaseOrderActionsDSL instance = factory.Create<BaseOrderActionsDSL>(@"Orders/OrderBusinessRules.boo");

            //use DSL target object
            //			instance.Order = new Order();
            //			instance.Order.TotalCost = 5000;
            //			instance.User = new User();
            //			instance.User.IsPreferred = true;

            //prepare DSL IL
            //instance.Prepare();

            //run DSL logic
            //instance.Execute();

            Console.WriteLine();
            Console.WriteLine("Just checking..");
            Console.ReadLine();
        }
 private void CanCompile(string script)
 {
     var dslFactory = new DslFactory();
     dslFactory.Register<ResponseStrategy>(new ResponseStrategyDslEngine());
     var strategy = dslFactory.Create<ResponseStrategy>(String.Format(@"Specs\TestDslScripts\{0}", script));
     strategy.ShouldNotBeNull();
 }
Exemple #7
0
 public BuildRunner([ImportMany] IEnumerable<ITaskImportBuilder> taskImportBuilders)
 {
     dslFactory = new DslFactory();
     dslFactory.Register<PhantomBase>(
         new PhantomDslEngine(taskImportBuilders.ToArray())
     );
 }
Exemple #8
0
 public BooDslFactory([ImportMany] IEnumerable <ITaskImportBuilder> taskImportBuilders)
 {
     dslFactory = new DslFactory();
     dslFactory.Register <PhantomBase>(
         new PhantomDslEngine(taskImportBuilders.ToArray())
         );
 }
        public DslFactoryFixture()
        {
            factory         = new DslFactory();
            mocks           = new MockRepository();
            mockedDslEngine = mocks.DynamicMock <DslEngine>();
            mockCache       = mocks.DynamicMock <IDslEngineCache>();

            mockCache.WriteLock(null);
            LastCall.Repeat.Any()
            .IgnoreArguments()
            .Do((Action <CacheAction>)ExecuteCachedAction);

            mockCache.ReadLock(null);
            LastCall.Repeat.Any()
            .IgnoreArguments()
            .Do((Action <CacheAction>)ExecuteCachedAction);

            IDslEngineStorage mockStorage = mocks.DynamicMock <IDslEngineStorage>();
            Assembly          assembly    = Assembly.GetCallingAssembly();

            context = new CompilerContext();
            context.GeneratedAssembly = assembly;
            mockedDslEngine.Storage   = mockStorage;
            mockedDslEngine.Cache     = mockCache;

            SetupResult.For(mockStorage.GetMatchingUrlsIn("", ref testUrl)).Return(new string[] { testUrl });
            SetupResult.For(mockStorage.IsUrlIncludeIn(null, null, null))
            .IgnoreArguments()
            .Return(true);
        }
Exemple #10
0
 public void SetUp()
 {
     _factory = new DslFactory
     {
         BaseDirectory = AppDomain.CurrentDomain.BaseDirectory
     };
     _factory.Register <StateMachineBuilder>(new StateMachineDSLEngine());
 }
Exemple #11
0
        public void Dsl_engine_can_take_parameters()
        {
            DslFactory _Factory = new DslFactory();
            _Factory.BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;

            _Factory.Register<MyClassWithParams>(new DslEngineWithParameters());
            MyClassWithParams classWithParams = _Factory.Create<MyClassWithParams>("DslFactoryFixture\\ScriptWithParameter.boo");
            Assert.AreEqual("World", classWithParams.Hello("World"));
        }
        private Host GetHost(IDictionary<string, object> variables)
        {
            DslFactory dslFactory = new DslFactory();
            HostDslEngine dslEngine = new HostDslEngine();
            dslEngine.Storage = new FileSystemDslEngineStorageWithExtension("*.host");

            dslFactory.Register<Host>(dslEngine);
            return dslFactory.Create<Host>(@"config\APPTEST\APPTEST.host", variables);
        }
 public BooLangEvaluator(IRuleDslEngineStorage dslEngineStorage)
 {
     parsedModels          = new Dictionary <string, DslModel>();
     ruleDslEngine         = new RuleDslEngine <RuleDslModel>();
     ruleDslEngine.Storage = dslEngineStorage;
     dslFactory            = new DslFactory();
     dslFactory.Register <RuleDslModel>(ruleDslEngine);
     this.dslEngineStorage = dslEngineStorage;
 }
Exemple #14
0
 protected void InitializeIfNeeded()
 {
     lock (this)
     {
         if (_dsl != null) return;
         _dsl = new DslFactory();
         _dsl.BaseDirectory = BaseDirectory;
         _dsl.Register<ScriptDSLBase>(new ScriptDSLEngine(BaseDirectory));
     }
 }
Exemple #15
0
        public void Dsl_engine_can_take_parameters()
        {
            DslFactory _Factory = new DslFactory();

            _Factory.BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;

            _Factory.Register <MyClassWithParams>(new DslEngineWithParameters());
            MyClassWithParams classWithParams = _Factory.Create <MyClassWithParams>("DslFactoryFixture\\ScriptWithParameter.boo");

            Assert.Equal("World", classWithParams.Hello("World"));
        }
        protected override void Before_each_spec()
        {
            dependencyResolver = CreateStub<IDependencyResolver>();
            dependencyResolver.Stub(x => x.Resolve<SVNSourceControl>()).Return(new SVNSourceControl(string.Empty));

            IoC.InitializeWith(dependencyResolver);

            factory = new DslFactory { BaseDirectory = DirectoryHelper.GetBaseDirectory() };
            factory.Register<BooConfigReader>(new ConfigReaderEngine());

            packageTree = MockRepository.GenerateStub<IPackageTree>();
        }
Exemple #17
0
        public virtual IBuildConfigReader SetDslFactory(IPackageTree packageTree)
        {
            PackageTree = packageTree;

            factory = new DslFactory
            {
                BaseDirectory = packageTree.CurrentDirectory.FullName
            };

            factory.Register <BooConfigReader>(new ConfigReaderEngine());

            return(this);
        }
        public void SetUp()
        {
            factory = new DslFactory
            {
                BaseDirectory = AppDomain.CurrentDomain.BaseDirectory
            };

            var engine = new StateMachineDSLEngine();

            engine.ImportedNamespaces.Add("Entropy.SimpleStateMachine.Tests");
            engine.ReferencedAssemblies.Add(GetType().Assembly);
            factory.Register <StateMachineBuilder>(engine);
        }
        public virtual IBuildConfigReader SetDslFactory(IPackageTree packageTree)
        {
            PackageTree = packageTree;

            factory = new DslFactory
                            {
                                BaseDirectory = packageTree.CurrentDirectory.FullName
                            };

            factory.Register<BooConfigReader>(new ConfigReaderEngine());

            return this;
        }
        protected override void OnLoad(EventArgs e)
        {
            if (DesignMode)
            {
                return;
            }


            base.OnLoad(e);
            var factory = new DslFactory
            {
                BaseDirectory = AppDomain.CurrentDomain.BaseDirectory
            };

            var engine = new StateMachineDSLEngine();

            engine.ImportedNamespaces.Add("StateMachineDemo.Domain");
            engine.ReferencedAssemblies.Add(typeof(Order).Assembly);

            factory.Register <StateMachineBuilder>(engine);

            if (String.IsNullOrEmpty(WorkflowDirectory))
            {
                WorkflowDirectory = @"WorkflowDefinitions\Basic";
            }

            StateMachineBuilder[] machines = factory.CreateAll <StateMachineBuilder>(WorkflowDirectory);
            foreach (StateMachineBuilder builder in machines)
            {
                var newMachine = new StateMachine();

                //As an alternative to using the task_assembly "assemblyname"
                //feature of the DSL, you can manually
                //register any assemblites that contain StateTransitionTasks.
                //This step can be skipped, but then all loaded assemblies
                //will be checked for tasks and if your project has a lot
                //of references, this will be a lot of wasted CPU cycles.

                //In this case, we are using the DSL to register the assembly
                //newMachine.RegisterTaskAssembly(GetType().Assembly);

                builder.BuildStateMachine(newMachine);
                _machines.Add(newMachine.Name, newMachine);
                _stateMachinePicker.Items.Add(newMachine.Name);
            }
            if (_stateMachinePicker.Items.Count > 0)
            {
                _stateMachinePicker.SelectedIndex = 0;
            }
        }
        protected override void Before_each_spec()
        {
            dependencyResolver = CreateStub<IDependencyResolver>();
            var environmentVariable = CreateStub<IEnvironmentVariable>();
            environmentVariable.Stub(x => x.GetDirectoryFor("git.cmd")).Return(Environment.CurrentDirectory);
            dependencyResolver.Stub(x => x.Resolve<GitSourceControl>()).Return(new GitSourceControl(environmentVariable));

            IoC.InitializeWith(dependencyResolver);

            factory = new DslFactory { BaseDirectory = DirectoryHelper.GetBaseDirectory() };
            factory.Register<BooConfigReader>(new ConfigReaderEngine());

            packageTree = MockRepository.GenerateStub<IPackageTree>();
        }
Exemple #22
0
        protected override void Before_each_spec()
        {
            dependencyResolver = CreateStub <IDependencyResolver>();
            dependencyResolver.Stub(x => x.Resolve <SVNSourceControl>()).Return(new SVNSourceControl(string.Empty));

            IoC.InitializeWith(dependencyResolver);

            factory = new DslFactory {
                BaseDirectory = DirectoryHelper.GetBaseDirectory()
            };
            factory.Register <BooConfigReader>(new ConfigReaderEngine());

            packageTree = MockRepository.GenerateStub <IPackageTree>();
        }
 private DslFactory GetDslFactory()
 {
     lock (this)
     {
         if (_fact == null)
         {
             _fact = new DslFactory();
             _fact.BaseDirectory = BaseDirectory;
             NGinnDslEngine eng1 = new NGinnDslEngine();
             eng1.BaseType = typeof(BooTaskScriptBase);
             _fact.Register(typeof(BooTaskScriptBase), eng1);
         }
         return _fact;
     }
 }
        public when_configuring_daemon_using_dsl()
        {
            test_event = new DSLTestEvent(new Categorisation("TEST"), Guid.Empty);

            publisher = new Publisher();

            var factory = new DslFactory
            {
                BaseDirectory = AppDomain.CurrentDomain.BaseDirectory,
            };
            factory.Register<BaseDaemonConfigurationDSL>(new BaseDaemonConfigurationDSLEngine());

            var dsl = factory.Create<BaseDaemonConfigurationDSL>("configuration.boo");
            dsl.Prepare();
            dsl.Execute();
        }
Exemple #25
0
        protected override void Before_each_spec()
        {
            dependencyResolver = CreateStub <IDependencyResolver>();
            var environmentVariable = CreateStub <IEnvironmentVariable>();

            environmentVariable.Stub(x => x.GetDirectoryFor("git.cmd")).Return(Environment.CurrentDirectory);
            dependencyResolver.Stub(x => x.Resolve <GitSourceControl>()).Return(new GitSourceControl(environmentVariable));

            IoC.InitializeWith(dependencyResolver);

            factory = new DslFactory {
                BaseDirectory = DirectoryHelper.GetBaseDirectory()
            };
            factory.Register <BooConfigReader>(new ConfigReaderEngine());

            packageTree = MockRepository.GenerateStub <IPackageTree>();
        }
        public void Start()
        {
            log.InfoFormat("Starting the agent");

            var factory = new DslFactory
            {
                BaseDirectory = AppDomain.CurrentDomain.BaseDirectory,
            };
            factory.Register<BaseDaemonConfigurationDSL>(new BaseDaemonConfigurationDSLEngine());

            var dsl = factory.Create<BaseDaemonConfigurationDSL>("configuration.boo");
            dsl.Prepare();
            dsl.Execute();


            schedulerFactory = new StdSchedulerFactory(ConfigurationManager.GetSection("quartz") as NameValueCollection);
            scheduler = schedulerFactory.GetScheduler();

            scheduler.Start();
        }
Exemple #27
0
        private static void Main2()
        {
            var factory = new DslFactory();
            factory.Register<SampleDslBase>(new SampleDslEngine());

            var dsl = factory.Create<SampleDslBase>("sample.dsl");
            dsl.Prepare();

            var entity = new Account();
            dsl.Creating(entity);
            Console.WriteLine("Account numer was set to: " + entity.AccountNumber);

            dsl.Creating(new Order
            {
                Account = new Account
                {
                    MaxOrderTotal = 10
                },
                Total = 15
            });
        }
Exemple #28
0
        /// <summary>
        /// Initializes a new instance of the <see cref="StateMachineService"/> class.
        /// </summary>
        /// <param name="workflowDirectory">The workflow directory.</param>
        /// <param name="importedNamespaces">The imported namespaces.</param>
        /// <param name="referencedAssemblies">The referenced assemblies.</param>
        public StateMachineService(string workflowDirectory, IEnumerable <string> importedNamespaces,
                                   IEnumerable <Assembly> referencedAssemblies)
        {
            if (workflowDirectory == null)
            {
                throw new ArgumentNullException("workflowDirectory");
            }
            _workflowDirectory = workflowDirectory;

            _factory = new DslFactory
            {
                BaseDirectory = AppDomain.CurrentDomain.BaseDirectory
            };

            var engine = new StateMachineDSLEngine();

            engine.ImportedNamespaces.AddRange(importedNamespaces);
            engine.ReferencedAssemblies.AddRange(referencedAssemblies);

            _factory.Register <StateMachineBuilder>(engine);
        }
        public void When_file_is_changed_will_automatically_get_new_version()
        {
            DslFactory factory = new DslFactory();
            factory.BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
            factory.Register<DemoDslBase>(new DemoDslEngine());
            File.WriteAllText(path, "log 'test'");
            
            DemoDslBase demo = factory.Create<DemoDslBase>(path);
            demo.Execute();
            Assert.Equal("test", demo.Messages[0]);

            File.WriteAllText(path,"log 'changed'");
        	for (int i = 0; i < 5; i++)
        	{
				Thread.Sleep(200);//let it time to refresh
				demo = factory.Create<DemoDslBase>(path);
				demo.Execute();
				if(demo.Messages[0]=="changed")
					break;
        	}
			Assert.Equal("changed", demo.Messages[0]);
        }
Exemple #30
0
        private static void Main()
        {
            var factory = new DslFactory();

            factory.Register <DeclerativeDslBase>(new DeclerativeDslEngine());

            while (true)
            {
                var dsl = factory.Create <DeclerativeDslBase>("Declerative.dsl");
                dsl.Prepare();

                dsl.Execute(
                    new Order {
                    Total = 5000
                },
                    new Customer {
                    IsPreferred = false
                });
                dsl.Execute(
                    new Order {
                    Total = 5000
                },
                    new Customer {
                    IsPreferred = true
                });

                dsl.Execute(
                    new Order {
                    Total = 10
                },
                    new Customer {
                    IsPreferred = true
                });

                Console.ReadKey();
            }
        }
Exemple #31
0
        private static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(1033);

            try
            {
                var factory = new DslFactory();
                factory.Register<PoplarTemplateFactory>(new PoplarDslEngine());
                var templateFactory = factory.Create<PoplarTemplateFactory>(args[0], null);
                templateFactory.Initialize();

                var template = templateFactory.Template;
                Console.WriteLine("{0}: {1}", template.Name, template.Description);
                foreach (var parameter in template.Parameters)
                {
                    Console.WriteLine("  {0}", parameter);
                    Console.WriteLine("    value: {0}", parameter.Value);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #32
0
        private static void Main2()
        {
            var factory = new DslFactory();

            factory.Register <SampleDslBase>(new SampleDslEngine());

            var dsl = factory.Create <SampleDslBase>("sample.dsl");

            dsl.Prepare();

            var entity = new Account();

            dsl.Creating(entity);
            Console.WriteLine("Account numer was set to: " + entity.AccountNumber);

            dsl.Creating(new Order
            {
                Account = new Account
                {
                    MaxOrderTotal = 10
                },
                Total = 15
            });
        }
 public MigrationFactory(EvoOptions options)
 {
     _baseDir = options.ScriptDirectory;
     _factory = new DslFactory();
     _factory.Register<MigrationBase>(new EvoEngine());
 }
Exemple #34
0
 public BaseDslFixture()
 {
     factory = new DslFactory();
     factory.BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
     this.factory.Register <TDslBase>(new TDslEngine());
 }
Exemple #35
0
 public DslBot(BotSettings settings)
     : base(settings)
 {
     _dslFactory = new DslFactory();
     _dslFactory.Register<ResponseStrategy>(new ResponseStrategyDslEngine());
 }
Exemple #36
0
 static BuildRunner()
 {
     dslFactory = new DslFactory();
     dslFactory.Register<PhantomBase>(new PhantomDslEngine());
 }
Exemple #37
0
 static Settings()
 {
     DslFactory = new DslFactory();
     DslFactory.Register <ArghSettings>(new ArghSettingsDslEngine());
     DslFactory.BaseDirectory = Environment.CurrentDirectory;
 }
Exemple #38
0
 static Settings()
 {
     DslFactory = new DslFactory();
     DslFactory.Register<ArghSettings>(new ArghSettingsDslEngine());
     DslFactory.BaseDirectory = Environment.CurrentDirectory;
 }
Exemple #39
0
 private static DslFactory CreateFactory()
 {
     DslFactory dslFactory = new DslFactory();
     dslFactory.Register<EtlProcess>(new EtlDslEngine());
     return dslFactory;
 }
Exemple #40
0
 static QuoteGenerator()
 {
     dslFactory = new DslFactory();
     dslFactory.Register <QuoteGeneratorRule>(new QuoteGenerationDslEngine());
 }
 static QuoteGenerator()
 {
   dslFactory = new DslFactory();
   dslFactory.Register<QuoteGeneratorRule>(new QuoteGenerationDslEngine());
 }