using System; using System.Collections.Generic; using System.Reflection; using Castle.MonoRail.Framework; //using Castle.Tools.CodeGenerator; //using Castle.Tools.CodeGenerator.Services; //using MusicGlue.Mocks; //using MusicGlue.Web.Code.MonoRail.SiteMap; using Rhino.Mocks; namespace KenEgozi.Com.Weblog.Tests { public class BaseControllerTest : Castle.MonoRail.TestSupport.GenericBaseControllerTest where C : Controller { // protected IArgumentConversionService argumentConversionService; // protected ICodeGeneratorServices codeGeneratorServices; // protected IControllerReferenceFactory controllerReferenceFactory; // protected IDictionaryAdapterFactory dictionaryAdapterFactory; // protected IRedirectService redirectService; // protected IRuntimeInformationService runtimeInformationService; protected MockRepository mocks; public virtual void SetUp() { mocks = new MockRepository(); // argumentConversionService = mocks.PartialMock(); // controllerReferenceFactory = new MockControllerReferenceFactory(mocks); // dictionaryAdapterFactory = mocks.DynamicMock(); // redirectService = mocks.PartialMock(); // runtimeInformationService = mocks.PartialMock(); // codeGeneratorServices = mocks.PartialMock( // controllerReferenceFactory, redirectService, argumentConversionService, runtimeInformationService); } protected void InitializeThreadPrincipal(string identity, params string[] roles) { // BaseTestHelper.InitializeThreadPrincipal(Context, identity, roles); } protected static void SetValidationErrorsForObject(SmartDispatcherController controllerOrWizardStep, object validatedInstance, params KeyValuePair[] errors) { // BaseTestHelper.SetValidationErrorsForObject(controllerOrWizardStep, validatedInstance, errors); } // protected RootAreaNode Site // { // get { return new RootAreaNode(codeGeneratorServices); } // } // protected static string ThreadIdentity // { // get { return BaseTestHelper.ThreadIdentity; } // } #region helpers protected void RunProc(object instance, string procName) { Type type = instance.GetType(); MethodInfo method = type.GetMethod(procName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); method.Invoke(instance, null); } protected void SetField(object instance, string fieldName, object value) { Type type = instance.GetType(); FieldInfo field = type.GetField(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); field.SetValue(instance, value); } #endregion } }