public void BuildUsingXmlWithLanguageInCData() { String xmlContents = "<configuration>" + " <![CDATA[" + " import AspectSharp.Tests.Classes in AspectSharp.Tests " + " interceptors [" + " \"key\" : DummyInterceptor " + " ]" + " mixins [" + " \"key\" : DummyMixin " + " ]" + " " + " aspect McBrother for DummyCustomer " + " include \"key\"" + " " + " pointcut method(*)" + " advice(\"key\")" + " end" + " " + " end " + " ]]>" + "</configuration>"; XmlEngineBuilder builder = new XmlEngineBuilder(xmlContents); AspectEngine engine = builder.Build(); AssertEngineConfiguration(engine); }
public void XmlWithMoreComplexMethodSignature() { String xmlContents = "<configuration>" + "<import namespace=\"AspectSharp.Tests.Classes\" assembly=\"AspectSharp.Tests\" />" + "<mixins>" + "<mixin key=\"key\" type=\"DummyMixin\" refTypeEnum=\"Type\" />" + "</mixins><interceptors>" + "<interceptor key=\"key\" type=\"DummyInterceptor\" refTypeEnum=\"Type\" />" + "</interceptors>" + "<aspect name=\"McBrother\"><for>" + "<singletype type=\"DummyCustomer\" refTypeEnum=\"Type\" />" + "</for>" + "<mixin type=\"key\" refTypeEnum=\"Link\" />" + "<pointcut symbol=\"Method\"><signature>(void Name(*))</signature>" + "<interceptor type=\"key\" refTypeEnum=\"Link\" />" + "</pointcut>" + "</aspect>" + "</configuration>"; XmlEngineBuilder builder = new XmlEngineBuilder(xmlContents); AspectEngine engine = builder.Build(); Assert.IsNotNull(engine); Assert.IsNotNull(engine.Configuration); AspectDefinition aspect = engine.Configuration.Aspects[0]; Assert.AreEqual(1, aspect.Mixins.Count); PointCutDefinition pointcut = aspect.PointCuts[0]; Assert.IsTrue(pointcut.Method.AllArguments); Assert.AreEqual("void", pointcut.Method.RetType); Assert.AreEqual("Name", pointcut.Method.MethodName); Assert.AreEqual(1, pointcut.Advices.Count); InterceptorDefinition advice = pointcut.Advices[0]; Assert.AreEqual(typeof(DummyInterceptor), advice.TypeReference.ResolvedType); }
public void BuildUsingXml() { String xmlContents = "<configuration>" + "<import namespace=\"AspectSharp.Tests.Classes\" assembly=\"AspectSharp.Tests\" />" + "<mixins>" + "<mixin key=\"key\" type=\"DummyMixin\" refTypeEnum=\"Type\" />" + "</mixins><interceptors>" + "<interceptor key=\"key\" type=\"DummyInterceptor\" refTypeEnum=\"Type\" />" + "</interceptors>" + "<aspect name=\"McBrother\"><for>" + "<singletype type=\"DummyCustomer\" refTypeEnum=\"Type\" />" + "</for>" + "<mixin type=\"key\" refTypeEnum=\"Link\" />" + "<pointcut symbol=\"Method\"><signature>(*)</signature>" + "<interceptor type=\"key\" refTypeEnum=\"Link\" />" + "</pointcut>" + "</aspect>" + "</configuration>"; XmlEngineBuilder builder = new XmlEngineBuilder(xmlContents); AspectEngine engine = builder.Build(); AssertEngineConfiguration(engine); }
public TestEngineHost(string name, string containsPattern) { Guard.AssertNotNullOrEmpty(name, "name"); this.name = name; publishEventPattern = containsPattern; var file = Helpers.DataDir(string.Format("{0}.xml", name)); CEngine engineXml; using (var xmlReader = new XmlTextReader(file)) { engineXml = (CEngine)XmlHelpers.Deserialize( typeof(CEngine), xmlReader, XmlEngineBuilder.EngineNamespace); } var builder = new XmlEngineBuilder(engineXml); engine = new SmartEngine(name, builder); engine.Bind(); engine.Publisher.CleanNodeEvent += (e, n) => OnCleanNodeHandler(e, n); }