Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }