Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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);
        }