public void GenerateMenuUsingRoleNone() { var httpRequest = new HttpRequest(string.Empty, "http://mySomething/", string.Empty); var stringWriter = new StringWriter(); var httpResponce = new HttpResponse(stringWriter); // httpResponce.Filter = new FileStream("asd.pdo",FileMode.CreateNew); var httpConextMock = new HttpContext(httpRequest, httpResponce); HttpContext.Current = httpConextMock; var menu = new Menu(); var menu1 = new Menu(); container = new WindsorContainer(); // HttpContext.Current = new HttpContext(new HttpRequest("", "http://iudico.com", null), new HttpResponse(new StreamWriter("mayBeDeleted.txt"))); InitializeWindsor(ref container); service = container.Resolve<ILmsService>(); PluginController.LmsService = service; var plugins = container.ResolveAll<IPlugin>(); var actions = new Dictionary<IPlugin, IEnumerable<Action>>(); var roles = new List<Role> { Role.None }; var currentRole = from rol in roles select rol; var userServiceMock = new Mock<IUserService>(); userServiceMock.Setup(item => item.GetCurrentUserRoles()).Returns(currentRole); var userServiceVar = service.FindService<IUserService>(); userServiceVar = userServiceMock.Object; var lmsservice = new Mock<ILmsService>(); lmsservice.Setup(item => item.FindService<IUserService>()).Returns(userServiceMock.Object); var acct = new AccountController(new DatabaseUserStorage(service)); lmsservice.Setup(item => item.GetMenu()).Returns(menu); try { service = lmsservice.Object; service.Inform(LMSNotifications.ApplicationRequestStart); } catch (Exception) { } foreach (var plugin in plugins) { menu.Add(plugin.BuildMenuItems().Where(m => this.IsAllowed(m.Controller, m.Action, roles))); } foreach (var plugin in plugins) { var menu11 = plugin.BuildMenuItems(); foreach (var menu2 in menu.Items) { if (menu11.Count(item => item == menu2) == 0) { Assert.Fail("Iterms mismatch"); } } } }
public void EnglishChangesIntoUkrainian() { //lets make fake httpcontext using reflection var httpRequest = new HttpRequest("", "http://mySomething/", ""); var stringWriter = new StringWriter(); var httpResponce = new HttpResponse(stringWriter); var httpContext = new HttpContext(httpRequest, httpResponce); var sessionContainer = new HttpSessionStateContainer("id", new SessionStateItemCollection(), new HttpStaticObjectsCollection(), 10, true, HttpCookieMode.AutoDetect, SessionStateMode.InProc, false); httpContext.Items["AspSession"] = typeof(HttpSessionState).GetConstructor( BindingFlags.NonPublic | BindingFlags.Instance, null, CallingConventions.Standard, new[] { typeof(HttpSessionStateContainer) }, null) .Invoke(new object[] { sessionContainer }); HttpContext.Current = httpContext; IWindsorContainer container = new WindsorContainer(); InitializeWindsor(ref container); AccountController pc = null; try { pc = new AccountController(new DatabaseUserStorage(container.Resolve<ILmsService>())); } catch (Exception e) { } var context = new Mock<ControllerContext>(); var session = new MockHttpSession(); context.Setup(m => m.HttpContext.Session).Returns(session); DatabaseUserStorage storage = new DatabaseUserStorage(null);//returns null but we don't need it pc.ControllerContext = context.Object; ViewResult result = pc.ChangeCulture("uk-UA", "/") as ViewResult; Assert.AreEqual("uk-UA", pc.Session["Culture"].ToString()); }