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))); }
#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; }
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>(); }
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)); }
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; }