public FileBasedTestRepository(string baseDir) { this.baseDir = baseDir; string indexFile = baseDir + "/" + IndexFileName; this.blobPath = baseDir + "/" + BlobFileName; if (!Directory.Exists(baseDir)) { Directory.CreateDirectory(baseDir); } if (File.Exists(indexFile)) { foreach (var line in File.ReadAllLines(indexFile)) { string[] parts = line.Split('&').Select(HttpUtility.UrlDecode).ToArray(); index[parts[0]] = new FileBasedTestResource(parts[1]); } } else { File.Create(indexFile); } saveIndex = delegate() { var lines = index.Select(kvp => HttpUtility.UrlEncode(kvp.Key) + '&' + HttpUtility.UrlEncode(kvp.Value.Path)); File.WriteAllLines(indexFile, lines); }; }
public ITestResource CreateResource(string name) { if (index.ContainsKey(name)) { throw new Exception("Resource " + name + " already exists"); } string realPath = baseDir + '/' + HttpUtility.UrlEncode(name); File.Create(realPath).Close(); index[name] = new FileBasedTestResource(realPath); saveIndex(); return(GetResource(name)); }