static void InitializeContainer(CommandLineParameters parameters) { var builder = new ContainerBuilder(); builder.RegisterType <StrPathCalculator>().As <IPathCalculator>().SingleInstance(); builder.RegisterType <ConsolePrinter>().As <IPrinter>().SingleInstance(); builder.Register( ctx => parameters.IsConsole() ? (IResultWriter)(new ConsoleWriter()) : (new FileWriter(parameters.ResultFile, ctx.Resolve <IPrinter>())) ).SingleInstance(); builder.Register( ctx => { IFileHandler result = null; IResultWriter writer = ctx.Resolve <IResultWriter>(); IPathCalculator calculator = ctx.Resolve <IPathCalculator>(); IPrinter printer = ctx.Resolve <IPrinter>(); switch (parameters.GetAction()) { case Core.Action.All: result = new SimpleFileHandler(printer); break; case Core.Action.Cs: result = new CsFileHandler(printer); break; case Core.Action.ReversedOne: result = new ReverseOneFileHandler(printer); break; case Core.Action.ReversedTwo: result = new ReverseTwoFileHandler(printer); break; default: throw new Exception($"Invalid action: [{parameters.ActionStr}]"); } return(result); } ).InstancePerLifetimeScope(); builder.Register <IDirectoryHandler>( ctx => new DirectoryHandler(parameters.StartDirectory, ctx.Resolve <IFileHandler>(), ctx.Resolve <IResultWriter>(), ctx.Resolve <IPathCalculator>(), ctx.Resolve <IPrinter>()) ).InstancePerLifetimeScope(); builder.RegisterType <Scanner>().As <IScanner>().InstancePerLifetimeScope(); _container = builder.Build(); }
public void ProcessFile_InvalidParameters_Test(string path) { var printerMock = new Mock <IPrinter>(); var handler = new SimpleFileHandler(printerMock.Object); var result = handler.ProcessFile(path); Assert.IsNull(result); }
static UrlBaseMapHandler ConfigureFileHandler(JObject config) { if (config != null) { JObject hand = config["simpleFileHandler"] as JObject; //allows us to host static files if (hand != null) { JArray urls; JValue root = hand["rootDirectory"] as JValue; if (root != null) { string rootDir = root.ToString(); if (!string.IsNullOrEmpty(rootDir)) { urls = hand["defaultFiles"] as JArray; if (urls != null) { List <string> defFiles = new List <string>(); foreach (JToken cur in urls) { string tmp = cur.ToString(); if (!string.IsNullOrEmpty(tmp)) { defFiles.Add(tmp); } } if (defFiles.Count > 0) { urls = hand["allowedExtensions"] as JArray; if (urls != null) { FileExtensions exts = new FileExtensions(); foreach (JToken cur in urls) { string tmp = cur.ToString(); if (!string.IsNullOrEmpty(tmp)) { exts.Add(tmp); } } if (exts.Count > 0) { SimpleFileHandler handler = new SimpleFileHandler(rootDir, defFiles, MimeTypes.GetAllWellKnown(), exts, new FileExtensions()); //so we can also have static files return(new UrlBaseMapHandler(handler, new string[] { "/" })); } } } } } } } } return(null); }
private static IHandlerMapper InitFiles(ConfigurationProviderBase prov) { ConfigurationParameter param = prov.Get(typeof(SimpleFileHandler), "rootDirectory"); if (param != null) { string rootDir = (string)param.Value; param = prov.Get(typeof(SimpleFileHandler), "logicalDirectory"); if (param != null) { string localDir = (string)param.Value; string[] defFiles; param = prov.Get(typeof(SimpleFileHandler), "defaultFiles"); if (param != null) { defFiles = (string[])param.Value; FileExtensions exts = new FileExtensions(); param = prov.Get(typeof(SimpleFileHandler), "allowedExtensions"); if (param != null) { string[] tmp = (string[])param.Value; foreach (string cur in tmp) { exts.Add(cur); } SimpleFileHandler handler = new SimpleFileHandler(rootDir, defFiles, MimeTypes.GetAllWellKnown(), exts, new FileExtensions()); //so we can also have static files return(new UrlBaseMapHandler(handler, new string[] { localDir })); } } } } return(null); }