public EncryptionServiceTests() { optionsObj = new EncryptionServiceOptions { EncryptionKeyFilePath = "file.txt" }; fileTextProvider = new Mock <IFileTextProvider>(); fileTextProvider.Setup(x => x.GetText(optionsObj.EncryptionKeyFilePath)) .Returns(EncryptionKey); options = new Mock <IOptions <EncryptionServiceOptions> >(); options.Setup(x => x.Value).Returns(optionsObj); }
public static IAppBuilder UseCredentialRepository(this IAppBuilder app, string controllerPrefix, ICredentialRepositoryOptions options) { return(app.Map( controllerPrefix, builder => { var config = new HttpConfiguration(); // Set up DI var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterInstance(options).AsImplementedInterfaces(); Database.SetInitializer(options.DatabaseInitializer); var encryptionOptions = new EncryptionServiceOptions(options.CertificateThumbprint, options.StoreName, options.StoreLocation); containerBuilder.Register(c => new CredentialRepositoryContext(options.NameOrConnectionString, new EncryptionService(encryptionOptions))) .As <DbContext>() .As <CredentialRepositoryContext>(); var container = ConfigureDependencyInjection(config, containerBuilder); builder.UseAutofacMiddleware(container); builder.UseAutofacWebApi(config); // Set up filters config.Filters.Add(new AuthorizeAttribute()); config.MessageHandlers.Add(new AuthenticationHandler(container)); // Map routes and formatting config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; config.IncludeErrorDetailPolicy = options.IncludeErrorDetailPolicy; config.MapHttpAttributeRoutes(); builder.UseWebApi(config); })); }