public void TestQueueStartAddDirectoryWithFiles() { var directoryName = Guid.NewGuid().ToString(); var directory = Directory.CreateDirectory(directoryName); var fileName1 = directory.FullName + "\\" + Guid.NewGuid().ToString(); var fileName2 = directory.FullName + "\\" + Guid.NewGuid().ToString(); using (var fs = File.Create(fileName1)) { } using (var fs = File.Create(fileName2)) { } var provider = new TokenProvider(new LexerMock()); var storage = new StorageMock(); using (var objectUnderTest = new FileQueue(storage, provider)) { objectUnderTest.Add(directory.FullName); Thread.Sleep((int)(FileQueue.ProcessPeriodMS * 1.25)); Assert.AreEqual(2, storage.Actions.Count); var file1 = storage.Actions.Dequeue(); var file2 = storage.Actions.Dequeue(); Assert.IsTrue((file1.Item1 == fileName1 && file2.Item1 == fileName2) || (file1.Item1 == fileName2 && file2.Item1 == fileName1)); Assert.AreEqual(file1.Item2, StorageMock._Add); Assert.AreEqual(file2.Item2, StorageMock._Add); } File.Delete(fileName1); File.Delete(fileName2); Directory.Delete(directory.FullName); }
public void TestAddDirectoryCreateFileChangeFileRenameFileRemoveFileFast() { var directoryName = Guid.NewGuid().ToString(); var directory = Directory.CreateDirectory(directoryName); var provider = new TokenProvider(new LexerMock()); var storage = new StorageMock(); using (var objectUnderTest = new FileQueue(storage, provider)) { objectUnderTest.Add(directory.FullName); var fileName = directory.FullName + "\\" + Guid.NewGuid().ToString(); using (var fs = File.Create(fileName)) { fs.Write(new byte[] { 1 }, 0, 1); } using (StreamWriter sw = new StreamWriter(fileName)) { sw.Write('a'); sw.Flush(); sw.Close(); } var newFileName = directory.FullName + "\\" + Guid.NewGuid().ToString(); File.Move(fileName, newFileName); File.Delete(newFileName); Thread.Sleep((int)(0.1 * FileQueue.ProcessPeriodMS)); Assert.AreEqual(1, storage.Actions.Count); Thread.Sleep((int)(1.25 * FileQueue.ProcessPeriodMS)); Assert.AreEqual(1, storage.Actions.Count); var tuple = storage.Actions.Dequeue(); Assert.AreEqual(newFileName, tuple.Item1); Assert.AreEqual(StorageMock._Delete, tuple.Item2); } Directory.Delete(directory.FullName); }
public async Task <IActionResult> Post() { using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { var rawData = await reader.ReadToEndAsync(); try { var obj = JObject.Parse(rawData); _q.Add(obj); } catch (Exception) { _q.Add(rawData); } return(Content(rawData)); } }
public void TestCreateNestedDirectoryCopyFileCreateFileCMoveFileUpDeleteFileSlow() { var directoryName = Guid.NewGuid().ToString(); var directory = Directory.CreateDirectory(directoryName); var helperDirectory = Directory.CreateDirectory(Guid.NewGuid().ToString()); var fileNameWOPath = Guid.NewGuid().ToString(); var fileName = helperDirectory.FullName + "\\" + fileNameWOPath; using (var fs = File.Create(fileName)) { fs.Write(new byte[] { 1 }, 0, 1); } var provider = new TokenProvider(new LexerMock()); var storage = new StorageMock(); using (var objectUnderTest = new FileQueue(storage, provider)) { objectUnderTest.Add(directory.FullName); var subdirectory = directory.CreateSubdirectory(Guid.NewGuid().ToString()); var newFileName = subdirectory.FullName + "\\" + fileNameWOPath; File.Move(fileName, newFileName); Thread.Sleep((int)(1.25 * FileQueue.ProcessPeriodMS)); Assert.AreEqual(1, storage.Actions.Count); var createdFileName = subdirectory.FullName + "\\" + Guid.NewGuid().ToString(); using (var fs = File.Create(createdFileName)) { fs.Write(new byte[] { 1 }, 0, 1); } Thread.Sleep((int)(1.25 * FileQueue.ProcessPeriodMS)); Assert.AreEqual(2, storage.Actions.Count); var newDestination = directory.FullName + "\\" + Guid.NewGuid().ToString(); File.Move(createdFileName, newDestination); Thread.Sleep((int)(1.25 * FileQueue.ProcessPeriodMS)); Assert.AreEqual(4, storage.Actions.Count); File.Delete(newDestination); Assert.AreEqual(5, storage.Actions.Count); File.Delete(newFileName); Assert.AreEqual(6, storage.Actions.Count); var tuple = storage.Actions.Dequeue(); Assert.AreEqual(newFileName, tuple.Item1); Assert.AreEqual(StorageMock._Add, tuple.Item2); tuple = storage.Actions.Dequeue(); Assert.AreEqual(createdFileName, tuple.Item1); Assert.AreEqual(StorageMock._Add, tuple.Item2); tuple = storage.Actions.Dequeue(); Assert.AreEqual(createdFileName, tuple.Item1); Assert.AreEqual(StorageMock._Delete, tuple.Item2); tuple = storage.Actions.Dequeue(); Assert.AreEqual(newDestination, tuple.Item1); Assert.AreEqual(StorageMock._Add, tuple.Item2); tuple = storage.Actions.Dequeue(); Assert.AreEqual(newDestination, tuple.Item1); Assert.AreEqual(StorageMock._Delete, tuple.Item2); tuple = storage.Actions.Dequeue(); Assert.AreEqual(newFileName, tuple.Item1); Assert.AreEqual(StorageMock._Delete, tuple.Item2); } Directory.Delete(helperDirectory.FullName); Directory.Delete(directory.FullName, true); }