public void BuildUsingCode()
{
CodeEngineBuilder builder = new CodeEngineBuilder();
EngineConfiguration conf = builder.GetConfiguration();
ImportDirective import = new ImportDirective(LexicalInfo.Empty, "AspectSharp.Tests.Classes");
import.AssemblyReference = new AssemblyReference(LexicalInfo.Empty, "AspectSharp.Tests");
conf.Imports.Add( import );
conf.Mixins.Add( "key", LexicalInfo.Empty ).TypeReference = new TypeReference(LexicalInfo.Empty, "DummyMixin");
conf.Interceptors.Add( "key", LexicalInfo.Empty ).TypeReference = new TypeReference(LexicalInfo.Empty, "DummyInterceptor");
AspectDefinition aspect = new AspectDefinition(LexicalInfo.Empty, "McBrother");
aspect.TargetType = new TargetTypeDefinition();
aspect.TargetType.SingleType = new TypeReference(LexicalInfo.Empty, "DummyCustomer");
conf.Aspects.Add(aspect);
MixinDefinition mixin = new MixinDefinition(LexicalInfo.Empty);
mixin.TypeReference = new TypeReference(LexicalInfo.Empty, "key", TargetTypeEnum.Link);
aspect.Mixins.Add( mixin );
PointCutDefinition pointcut = new PointCutDefinition(LexicalInfo.Empty, PointCutFlags.Method);
pointcut.Method = AllMethodSignature.Instance;
InterceptorDefinition interceptor = new InterceptorDefinition(LexicalInfo.Empty);
interceptor.TypeReference = new TypeReference(LexicalInfo.Empty, "key", TargetTypeEnum.Link);
pointcut.Advices.Add(interceptor);
aspect.PointCuts.Add(pointcut);
AspectEngine engine = builder.Build();
AssertEngineConfiguration(engine);
}