/// <summary> /// Initializes the service provider. /// </summary> /// <param name="serviceProvider">The service provider.</param> /// <param name="options">Middleware options</param> public virtual void Initialize(IServiceProvider serviceProvider, LiteApiOptions options) { _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); if (options == null) { throw new ArgumentNullException(nameof(options)); } RegisterAllInternalServices(options); }
public void LiteApiOptionsAddControllerAssemblies_AddsControllerAssemblies_IncreaseNumberOfAssemblies() { var options = new LiteApiOptions(); var assembly = Assembly.GetEntryAssembly(); int count = options.ControllerAssemblies.Count(); options.AddControllerAssemblies(new[] { assembly }); Assert.Equal(options.ControllerAssemblies.Count(), count + 1); }
public void LiteApiOptionsAddAdditionalQueryModelBinder_NotNullQueryModelBinder_AddsQueryModelBinder() { var options = new LiteApiOptions(); var modelBinder = new Fakes.FakeQueryModelBinder(); options.AddAdditionalQueryModelBinder(modelBinder); var added = typeof(LiteApiOptions).GetProperty("AdditionalQueryModelBinders", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(options) as List <IQueryModelBinder>; Assert.Equal(modelBinder, added[0]); }
public void LiteApiOptionsSetLoggerFactory_NotNullLoggerFactory_SetsLoggerFactory() { var options = new LiteApiOptions(); Assert.Null(options.LoggerFactory); options.SetLoggerFactory(new Fakes.FakeLoggerFactory()); Assert.NotNull(options.LoggerFactory); }
public void LiteApiOptionsAddAuthorizationPolicy_ValidPolicy_AddsPolicy() { var options = new LiteApiOptions(); options.AddAuthorizationPolicy("asd", (c) => true); var policyStore = typeof(LiteApiOptions).GetProperty("AuthorizationPolicyStore", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(options) as IAuthorizationPolicyStore; var policy = policyStore.GetPolicy("asd"); Assert.NotNull(policy); }
private void RegisterAllInternalServices(LiteApiOptions options) { if (!IsServiceRegistered <IActionDiscoverer>()) { Register <IActionDiscoverer, ActionDiscoverer>(); } if (!IsServiceRegistered <IActionInvoker>()) { RegisterSingleton <IActionInvoker, ActionInvoker>(); } if (!IsServiceRegistered <IActionsValidator>()) { Register <IActionsValidator, ActionsValidator>(); } if (!IsServiceRegistered <IControllerBuilder>()) { Register <IControllerBuilder, ControllerBuilder>(); } if (!IsServiceRegistered <IControllerDiscoverer>()) { Register <IControllerDiscoverer, ControllerDiscoverer>(); } if (!IsServiceRegistered <IControllersValidator>()) { Register <IControllersValidator, ControllersValidator>(); } if (!IsServiceRegistered <IParametersDiscoverer>()) { Register <IParametersDiscoverer, ParametersDiscoverer>(); } if (!IsServiceRegistered <IParametersValidator>()) { Register <IParametersValidator, ParametersValidator>(); } if (!IsServiceRegistered <IJsonSerializer>()) { RegisterInstance <IJsonSerializer>(new JsonSerializer()); } if (!IsServiceRegistered <ILiteApiOptionsAccessor>()) { RegisterInstance <ILiteApiOptionsAccessor>(new LiteApiOptionsAccessor(options)); } }
/// <summary> /// Constructor /// </summary> /// <param name="controllers">All controller contexts</param> /// <param name="optionsAccessor">Options accessor</param> /// <param name="serializer">JSON serializer</param> public DiscoveryHandler( ControllerContext[] controllers, ILiteApiOptionsAccessor optionsAccessor, IJsonSerializer serializer, IModelBinder modelBinders) { if (optionsAccessor == null) { throw new ArgumentNullException(nameof(optionsAccessor)); } _options = optionsAccessor.GetOptions(); _controllers = controllers ?? throw new ArgumentNullException(nameof(controllers)); _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); _modelBinders = modelBinders ?? throw new ArgumentNullException(nameof(modelBinders)); }
public void LiteApiOptionsAddAuthorizationPolicy_NullPolicy_ThrowsException() { var options = new LiteApiOptions(); bool error = false; try { options.AddAuthorizationPolicy("abc", null); } catch (ArgumentNullException) { error = true; } Assert.True(error); }
public void LiteApiOptionsAddAdditionalQueryModelBinder_NullQueryModelBinder_ThrowsException() { var options = new LiteApiOptions(); bool error = false; try { options.AddAdditionalQueryModelBinder(null); } catch (ArgumentNullException) { error = true; } Assert.True(error); }
public void LiteApiOptionsAddAuthorizationPolicy_NullPolicyName_ThrowsException() { var options = new LiteApiOptions(); bool error = false; try { options.AddAuthorizationPolicy(null, (c) => true); } catch (ArgumentException ex) { Assert.True(ex.Message.Contains("cannot be null or empty or whitespace")); error = true; } Assert.True(error); }
public void LiteApiOptionsSetLoggerFactory_NullLoggerFactory_ThrowsException() { var options = new LiteApiOptions(); bool error = false; try { options.SetLoggerFactory(null); } catch (ArgumentNullException) { error = true; } Assert.True(error); }
/// <summary> /// Constructor /// </summary> /// <param name="options">Middleware options</param> public LiteApiOptionsAccessor(LiteApiOptions options) { _options = options ?? throw new ArgumentNullException(nameof(options)); }
/// <summary> /// Uses the lite API. /// </summary> /// <param name="appBuilder">Instance of <see cref="IApplicationBuilder"/></param> /// <param name="options">Instance of <see cref="LiteApiOptions"/> to use</param> /// <returns>Instance of <see cref="IApplicationBuilder"/></returns> public static IApplicationBuilder UseLiteApi(this IApplicationBuilder appBuilder, LiteApiOptions options) { appBuilder.UseMiddleware <LiteApiMiddleware>(options, appBuilder.ApplicationServices); return(appBuilder); }