Ejemplo n.º 1
0
        static GenerateCodeResult DoGenerateCode(StObjCollectorResult result,
                                                 Func <StObjEngineConfiguration, StObjEngineConfiguration>?engineConfigurator,
                                                 bool generateSourceFiles,
                                                 CompileOption compileOption)
        {
            Throw.CheckArgument(!result.HasFatalError);
            var assemblyName = StObjContextRoot.GeneratedAssemblyName + DateTime.Now.ToString(".yyMdHmsffff");

            var config = new StObjEngineConfiguration()
            {
                GeneratedAssemblyName = assemblyName,
            };

            config.BinPaths.Add(new BinPathConfiguration()
            {
                CompileOption       = compileOption,
                GenerateSourceFiles = generateSourceFiles,
                ProjectPath         = TestHelper.TestProjectFolder
            });
            if (engineConfigurator != null)
            {
                config = engineConfigurator.Invoke(config);
                Throw.CheckState("The engine configuration returned by the engineConfigurator cannot be null.", config != null);
            }
            return(new GenerateCodeResult(result, Setup.StObjEngine.Run(TestHelper.Monitor, result, config)));
        }
Ejemplo n.º 2
0
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public void Deconstruct(out StObjCollectorResult collector, out IStObjMap map, out StObjContextRoot.ServiceRegister serviceRegister, out ServiceProvider services)
        {
            collector       = CollectorResult;
            map             = Map;
            serviceRegister = ServiceRegister;
            services        = Services;
        }
Ejemplo n.º 3
0
        public void simple_poco_resolution_and_injection()
        {
            StObjCollectorResult result = BuildPocoSample(typeof(PackageWithBasicPoco));

            Debug.Assert(result.EngineMap != null);

            IStObjResult p       = result.EngineMap.StObjs.ToHead(typeof(PackageWithBasicPoco)) !;
            var          package = (PackageWithBasicPoco)p.FinalImplementation.Implementation;

            package.Factory.Should().NotBeNull();
        }
        public void abstract_auto_implementable_leaf_but_using_PreventAutoImplementationAttribute_are_silently_ignored()
        {
            StObjCollector collector = new StObjCollector(TestHelper.Monitor, new SimpleServiceContainer());

            collector.RegisterType(typeof(A4));

            StObjCollectorResult result = TestHelper.GetSuccessfulResult(collector);

            Debug.Assert(result.EngineMap != null, "No initialization error.");

            result.EngineMap.StObjs.Obtain <A>().Should().NotBeNull().And.BeAssignableTo <A>().And.NotBeAssignableTo <A4>();
        }
Ejemplo n.º 5
0
        public void poco_factory_exposes_the_final_type()
        {
            StObjCollectorResult result = BuildPocoSample();

            Debug.Assert(result.EngineMap != null, "No error.");

            var p = result.EngineMap.StObjs.Obtain <IPocoFactory <IBasicPoco> >() !;

            Type pocoType = p.PocoClassType;

            Assert.That(typeof(IBasicPoco).IsAssignableFrom(pocoType));
            Assert.That(typeof(IEAlternateBasicPoco).IsAssignableFrom(pocoType));
            Assert.That(typeof(IEBasicPoco).IsAssignableFrom(pocoType));
            Assert.That(typeof(IECombineBasicPoco).IsAssignableFrom(pocoType));
            Assert.That(typeof(IEIndependentBasicPoco).IsAssignableFrom(pocoType));
        }
Ejemplo n.º 6
0
 internal GenerateCodeResult(StObjCollectorResult r, StObjEngineResult e)
 {
     CollectorResult = r;
     EngineResult    = e;
 }
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public void Deconstruct(out StObjCollectorResult result, out IStObjMap map)
        {
            result = CollectorResult;
            map    = Map;
        }