Renamed RailsException to MonoRailException
[castle.git] / Tools / DynamicProxy / Castle.DynamicProxy.Tests / AccessLevelTestCase.cs
blob71277bd716695d36b3249e854522e38b8dff0daa
1 // Copyright 2004-2007 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.DynamicProxy.Test
17 using System;
18 using System.Collections;
20 using NUnit.Framework;
22 using Castle.DynamicProxy.Test.Classes;
24 /// <summary>
25 /// Summary description for AccessLevelTestCase.
26 /// </summary>
27 [TestFixture]
28 public class AccessLevelTestCase
30 [Test]
31 public void ProtectedConstructor()
33 ProxyGenerator generator = new ProxyGenerator();
35 NonPublicConstructorClass proxy =
36 generator.CreateClassProxy(
37 typeof(NonPublicConstructorClass), new StandardInterceptor() )
38 as NonPublicConstructorClass;
40 Assert.IsNotNull(proxy);
42 proxy.DoSomething();
45 [Test]
46 public void ProtectedMethods()
48 ProxyGenerator generator = new ProxyGenerator();
50 LogInvocationInterceptor logger = new LogInvocationInterceptor();
52 NonPublicMethodsClass proxy = (NonPublicMethodsClass)
53 generator.CreateClassProxy( typeof(NonPublicMethodsClass), logger );
55 proxy.DoSomething();
57 Assert.AreEqual( 2, logger.Invocations.Length );
58 Assert.AreEqual( "DoSomething", logger.Invocations[0] );
59 Assert.AreEqual( "DoOtherThing", logger.Invocations[1] );
63 public class LogInvocationInterceptor : StandardInterceptor
65 protected ArrayList invocations = new ArrayList();
67 protected override void PreProceed(IInvocation invocation, params object[] arguments)
69 invocations.Add(invocation.Method.Name);
72 public String[] Invocations
74 get { return (String[]) invocations.ToArray( typeof(String) ); }