IEnumerable <Cci.IMethodDefinition> Cci.ITypeDefinition.GetMethods(EmitContext context) { if (_lazyMethods.IsDefault) { Debug.Assert(TypeManager.IsFrozen); var builder = ArrayBuilder <Cci.IMethodDefinition> .GetInstance(); int gapIndex = 1; int gapSize = 0; foreach (var method in GetMethodsToEmit()) { if ((object)method != null) { TEmbeddedMethod embedded; if (TypeManager.EmbeddedMethodsMap.TryGetValue(method, out embedded)) { if (gapSize > 0) { builder.Add( new VtblGap( this, ModuleExtensions.GetVTableGapName(gapIndex, gapSize) ) ); gapIndex++; gapSize = 0; } builder.Add(embedded); } else { gapSize++; } } else { gapSize++; } } ImmutableInterlocked.InterlockedInitialize( ref _lazyMethods, builder.ToImmutableAndFree() ); } return(_lazyMethods); }
public void ItShouldFindTestModule() { ImmutableArray <OrderedModuleRegistration> registrations = ModuleExtensions.GetModules( new[] { GetType().Assembly }, Array.Empty <Type>(), new NoConfiguration()); Assert.NotEmpty(registrations); Assert.Contains( registrations, orderedModuleRegistration => orderedModuleRegistration.ModuleRegistration.ModuleType == typeof(TestModule)); }
public void ShouldRegisterInRootScopeFalse() { ImmutableArray <OrderedModuleRegistration> registrations = ModuleExtensions.GetModules( new[] { GetType().Assembly }, Array.Empty <Type>(), new NoConfiguration()); OrderedModuleRegistration orderedModuleRegistration = registrations.SingleOrDefault(moduleRegistration => moduleRegistration.ModuleRegistration.ModuleType == typeof(SimpleNoOpTestModule)); Assert.False(orderedModuleRegistration?.ModuleRegistration?.RegisterInRootScope); }
public void ShouldBeFound() { ImmutableArray <OrderedModuleRegistration> registrations = ModuleExtensions.GetModules( new[] { GetType().Assembly }, Array.Empty <Type>(), new NoConfiguration()); OrderedModuleRegistration orderedModuleRegistration = registrations.SingleOrDefault(moduleRegistration => moduleRegistration.ModuleRegistration.ModuleType == typeof(SimpleNoOpTestModule)); Assert.NotNull(orderedModuleRegistration); }
public void ShouldBeFound() { ImmutableArray <OrderedModuleRegistration> registrations = ModuleExtensions.GetModules( new[] { GetType().Assembly }, Array.Empty <Type>(), new NoConfiguration()); OrderedModuleRegistration orderedModuleRegistration = registrations.SingleOrDefault(moduleRegistration => moduleRegistration.ModuleRegistration.ModuleType == typeof(NoOpTestModule)); Assert.Equal(37, orderedModuleRegistration?.ModuleRegistration?.Order); Assert.Equal(Scope.AspNetCoreScope, orderedModuleRegistration?.ModuleRegistration?.Tag); Assert.True(orderedModuleRegistration?.ModuleRegistration?.RegisterInRootScope); }
public void ItShouldInstantiateModule() { var nameValueCollection = new NameValueCollection { { nameof(NoOpTestModule.MeaningOfLife), "42" } }; ImmutableArray <OrderedModuleRegistration> registrations = ModuleExtensions.GetModules( new[] { GetType().Assembly }, Array.Empty <Type>(), new InMemoryKeyValueConfiguration(nameValueCollection)); OrderedModuleRegistration orderedModuleRegistration = registrations.SingleOrDefault(moduleRegistration => moduleRegistration.ModuleRegistration.ModuleType == typeof(NoOpTestModule)); Assert.NotNull(orderedModuleRegistration); var module = orderedModuleRegistration.Module as NoOpTestModule; Assert.NotNull(module); Assert.Equal("42", module.MeaningOfLife); }
public static TModel Bind <TModel>(this NancyModule module, BindingConfig configuration, params Expression <Func <TModel, object> >[] blacklistedProperties) { if (module == null) { throw new ArgumentNullException(nameof(module)); } try { if ((configuration == null) && (blacklistedProperties == null)) { return(ModuleExtensions.Bind <TModel>(module)); } if ((configuration != null) && (blacklistedProperties == null)) { return(ModuleExtensions.Bind <TModel>(module, configuration)); } return(configuration == null ? ModuleExtensions.Bind(module, blacklistedProperties) : ModuleExtensions.Bind(module, configuration, blacklistedProperties)); } catch (ModelBindingException) { throw; } catch (Exception ex) { throw new ModelBindingException(typeof(TModel), null, ex); } }
public void ShouldThrow_WhenDependsModuleNotImplementModule() { Assert.Throws <ModuleInitializeException>(() => ModuleExtensions.GetModulesRecursively(typeof(FailModule))); }
public void ShouldAddUniqueModules_WhenModulesReferenceDuplicate() { var modulesList = ModuleExtensions.GetModulesRecursively(typeof(ModuleWithDupes)); Assert.Equal(3, modulesList.Length); }
public LoginModule(IUserRepository userRepository) { _user = userRepository; Apikey = ConfigurationManager.AppSettings["JanrainKey"]; Post["/login/token"] = x => { if (string.IsNullOrWhiteSpace(Request.Form.token)) { return (View["Login/Error", new { Title = Strings.LoginModule_LoginError, Message = Strings.LoginModule_BadResponse_NoToken }]); } var response = new WebClient().DownloadString(string.Format("https://rpxnow.com/api/v2/auth_info?apiKey={0}&token={1}", Apikey, Request.Form.token)); if (string.IsNullOrWhiteSpace(response)) { return (View["Login/Error", new { Title = Strings.LoginModule_LoginError, Message = Strings.LoginModule_BadResponse_NoUser }]); } var j = JsonConvert.DeserializeObject <dynamic>(response); if (j.stat.ToString() != "ok") { return (View["Login/Error", new { Title = Strings.LoginModule_LoginError, Message = Strings.LoginModule_BadResponse }]); } var userIdentity = j.profile.identifier.ToString(); var username = j.profile.preferredUsername.ToString(); string email = string.Empty; if (j.profile.email != null) { email = j.profile.email.ToString(); } var user = _user.GetUserFromUserIdentity(userIdentity); if (user == null) { var u = new User { Id = Guid.NewGuid(), Identity = userIdentity, UserName = (!string.IsNullOrEmpty(username)) ? username : "******" + _user.GetAll().Count(), Email = (!string.IsNullOrEmpty(email)) ? email : "*****@*****.**", Github = (!string.IsNullOrEmpty(username)) ? username : "", IsActive = true, }; if (!_user.GetAll().Any()) { _user.AddRole(u, "Admin"); } if (j.profile.photo != null) { u.AvatarUrl = j.profile.photo.ToString(); } _user.Add(u); return(this.LoginAndRedirect(u.Id, DateTime.Now.AddDays(1), "/profile/edit")); } return(ModuleExtensions.Login(this, user.Id, DateTime.Now.AddDays(1), "/")); }; Get["/logout/"] = parameters => this.LogoutAndRedirect("/"); }