public void TestRights(RightDefaultMode mode, Type expectedType) { var services = new ServiceCollection(); new RddBuilder(services).WithDefaultRights(mode); var provider = services.BuildServiceProvider(); Assert.IsType(expectedType, provider.GetRequiredService <IRightExpressionsHelper <Hierarchy> >()); }
public static RddBuilder WithDefaultRights(this RddBuilder rddBuilder, RightDefaultMode mode) { switch (mode) { case RightDefaultMode.Closed: rddBuilder.Services.AddSingleton(typeof(IRightExpressionsHelper <>), typeof(ClosedRightExpressionsHelper <>)); break; case RightDefaultMode.Open: rddBuilder.Services.AddSingleton(typeof(IRightExpressionsHelper <>), typeof(OpenRightExpressionsHelper <>)); break; default: throw new ArgumentException("Invalid right mode", nameof(mode)); } return(rddBuilder); }