public Service(ulong capacity, uint port) { _memCache = new MemCache(capacity, Scheduler.Default); IScheduler scheduler = Scheduler.Default; var requestHandlers = GetRequestHandlers(scheduler, _memCache); _requestDispatcher = new RequestDispatcher(scheduler, _memCache, requestHandlers); _server = new RequestResponseTcpServer(IPAddress.Any, (int)port, _requestDispatcher); _restListener = new CacheRestServer(new Dictionary <string, IHttpHandler> { { "/cache/(.+)", new CacheRestHttpHandler(_memCache) }, { "/static/(.+)", new StaticFileHttpHandler() } }, new[] { "http://localhost:8222/cache/", "http://localhost:8222/static/" }); _websocketServer = new WebSocketServer(new [] { "http://localhost:8222/sub/" }, o => new CacheEntrySubscriptionHandler(_memCache, o)); _fileSystem = new FileSystemWrapper(); const string cachelogBin = "cachelog.bin"; _restorer = new CacheRestorer(_memCache, _fileSystem, cachelogBin); }
public void Setup() { _mockCache = new Mock <IMemCache>(); _mockFile = new Mock <IFile>(); _readStream = new MemoryStream(); _writeStream = new MemoryStream(); _mockFile.Setup(s => s.Open( It.IsAny <string>(), It.Is <FileMode>(fm => fm == FileMode.OpenOrCreate), It.Is <FileAccess>(fa => fa == FileAccess.Write))).Returns(_writeStream); _mockFileSystem = new Mock <IFileSystem>(); _mockFileSystem.SetupGet(fs => fs.File).Returns(_mockFile.Object); _cacheRestorer = new CacheRestorer(_mockCache.Object, _mockFileSystem.Object, "log"); }
public void LogIsReplacedWithCompacted() { // TODO: test that temp file name is same in open and replace _mockFile.Setup(s => s.Open( It.IsAny <string>(), It.Is <FileMode>(fm => fm == FileMode.OpenOrCreate), It.Is <FileAccess>(fa => fa == FileAccess.Write))).Returns(_writeStream); GivenLogFile("log", CreateLogStream()); _cacheRestorer.RestoreCache(); _mockFile.Verify(file => file.Replace( It.IsAny <string>(), It.Is <string>(d => d == "log"), It.IsAny <string>(), It.IsAny <bool>()), Times.Once()); var entries = CacheRestorer.ReadLog(new MemoryStream(_writeStream.ToArray())); Assert.AreEqual(3, entries.Count()); }