public void ClassWithConstructorArguments()
{
String contents = "import AspectSharp.Tests.Classes in AspectSharp.Tests " +
" " +
" aspect MyAspect for ComplexClass " +
" " +
" pointcut method|property(*)" +
" advice(AspectSharp.Tests.Classes.LogInvocationInterceptor)" +
" end" +
" " +
" end ";
AspectEngineBuilder builder = new AspectLanguageEngineBuilder(contents);
AspectEngine engine = builder.Build();
ComplexClass instance = null;
instance = engine.WrapClass(typeof(ComplexClass), "Eric Cartman") as ComplexClass;
Assert.AreEqual("Eric Cartman", instance.Name);
Assert.IsFalse(instance.Started);
InvokeAndAssert(instance);
instance = engine.WrapClass(typeof(ComplexClass), "Kenny McKormick", true) as ComplexClass;
Assert.AreEqual("Kenny McKormick", instance.Name);
Assert.IsTrue(instance.Started);
InvokeAndAssert(instance);
String[] messages = LogInvocationInterceptor.Messages;
Assert.AreEqual( 20, messages.Length );
}