Esempio n. 1
0
        public void CreateFromPathOperation_FileModeAndFileAccessAndFileShareAndBufferSizeAndFileOptions_CalledOnce()
        {
            var attr = (FsFactAttribute)Attribute.GetCustomAttribute(MethodBase.GetCurrentMethod(),
                                                                     typeof(FsFactAttribute));
            var fileSystemMock = attr.GetMock <IFileSystem>();
            var txFileSystem   = new TxFileSystem(fileSystemMock.Object);

            var fileName    = UnitTestUtils.GetTempFileName(txFileSystem);
            var fileMode    = FileMode.OpenOrCreate;
            var fileAccess  = FileAccess.ReadWrite;
            var fileShare   = FileShare.Read;
            var bufferSize  = 512;
            var fileOptions = FileOptions.SequentialScan;

            var fileStreamMock = new Mock <FileStream>(MockBehavior.Loose, fileName, fileMode, fileAccess, fileShare,
                                                       bufferSize, fileOptions);

            fileSystemMock.Setup(fs => fs.FileStream.Create(It.Is <string>((f) => f == fileName),
                                                            It.Is <FileMode>((m) => m == fileMode), It.Is <FileAccess>((a) => a == fileAccess),
                                                            It.Is <FileShare>((s) => s == fileShare), It.Is <int>((s) => s == bufferSize),
                                                            It.Is <FileOptions>((o) => o == fileOptions)))
            .Returns(fileStreamMock.Object);

            var fileStreamReturned = txFileSystem.FileStream.Create(fileName, fileMode, fileAccess,
                                                                    fileShare, bufferSize, fileOptions);

            fileSystemMock.Verify(fs => fs.FileStream.Create(It.Is <string>((f) => f == fileName),
                                                             It.Is <FileMode>((m) => m == fileMode), It.Is <FileAccess>((a) => a == fileAccess),
                                                             It.Is <FileShare>((s) => s == fileShare), It.Is <int>((s) => s == bufferSize),
                                                             It.Is <FileOptions>((o) => o == fileOptions)), Times.Once);

            Assert.Equal(fileStreamMock.Object, fileStreamReturned);
        }
Esempio n. 2
0
        public void CreateFromPathOperation_Open_ContentsChanged()
        {
            var fileSystem   = new FileSystem();
            var txFileSystem = new TxFileSystem(fileSystem);

            string fileName = UnitTestUtils.GetTempFileName(txFileSystem);

            var streamWriter = txFileSystem.File.CreateText(fileName);

            streamWriter.Write("Original contents" + Environment.NewLine);
            streamWriter.Flush();
            streamWriter.Close();

            Stream fileStream = null;

            using (var transactionScope = new TransactionScope())
            {
                txFileSystem = new TxFileSystem(fileSystem);
                fileStream   = txFileSystem.FileStream.Create(fileName, FileMode.Open);
                var data = Encoding.Default.GetBytes("Written" + Environment.NewLine);
                fileStream.Seek(fileStream.Length, SeekOrigin.Begin);
                fileStream.SetLength(fileStream.Length + data.Length);
                fileStream.Write(data, 0, data.Length);
                fileStream.Flush();

                transactionScope.Complete();
            }

            fileStream.Close();

            Assert.Equal("Original contents" + Environment.NewLine
                         + "Written" + Environment.NewLine, txFileSystem.File.ReadAllText(fileName));

            txFileSystem.File.Delete(fileName);
        }
        public void CreateFromSafeFileHandleOperation_BufferSizeAndIsAsync_CalledOnce()
        {
            var attr = (FsFactAttribute)Attribute.GetCustomAttribute(MethodBase.GetCurrentMethod(),
                                                                     typeof(FsFactAttribute));
            var fileSystemMock = attr.GetMock <IFileSystem>();
            var txFileSystem   = new TxFileSystem(fileSystemMock.Object);

            var ownsHandle = true;
            var fileAccess = FileAccess.ReadWrite;
            var fileName   = UnitTestUtils.GetTempFileName(new TxFileSystem());
            var filePtr    = NativeMethods.CreateFile(fileName, fileAccess, FileShare.ReadWrite, IntPtr.Zero,
                                                      FileMode.OpenOrCreate, FileAttributes.Normal, IntPtr.Zero);
            var safeFileHandle = new SafeFileHandle(filePtr, ownsHandle: ownsHandle);
            var bufferSize     = 512;
            var isAsync        = false;

            var fileStreamMock = new Mock <FileStream>(MockBehavior.Loose, safeFileHandle, fileAccess,
                                                       bufferSize, isAsync);

            fileSystemMock.Setup(f => f.FileStream.Create(It.Is <SafeFileHandle>((p) => p == safeFileHandle),
                                                          It.Is <FileAccess>((a) => a == fileAccess), It.Is <int>((s) => s == bufferSize),
                                                          It.Is <bool>((a) => a == isAsync)))
            .Returns(fileStreamMock.Object);

            var fileStreamReturned = txFileSystem.FileStream.Create(safeFileHandle, fileAccess, bufferSize, isAsync);

            fileSystemMock.Verify(f => f.FileStream.Create(It.Is <SafeFileHandle>((p) => p == safeFileHandle),
                                                           It.Is <FileAccess>((a) => a == fileAccess), It.Is <int>((s) => s == bufferSize),
                                                           It.Is <bool>((a) => a == isAsync)), Times.Once);

            Assert.Equal(fileStreamMock.Object, fileStreamReturned);

            NativeMethods.CloseHandle(filePtr);
            new TxFileSystem().File.Delete(fileName);
        }
 public void TestInitialize()
 {
     UnitTestUtils.ConfigureThreadPoolSettingsForStorageTests();
     // Pre-create table, if required
     manager      = new UnitTestAzureTableDataManager(StorageTestConstants.DataConnectionString);
     PartitionKey = "PK-AzureTableDataManagerTests-" + Guid.NewGuid();
 }
        public async Task ResubscriptionTest(Guid streamGuid, string streamNamespace)
        {
            // get producer and consumer
            ISampleStreaming_ProducerGrain     producer = SampleStreaming_ProducerGrainFactory.GetGrain(Guid.NewGuid());
            IMultipleSubscriptionConsumerGrain consumer = MultipleSubscriptionConsumerGrainFactory.GetGrain(Guid.NewGuid());

            await producer.BecomeProducer(streamGuid, streamNamespace, streamProviderName);

            // setup one subscription and send messsages
            StreamSubscriptionHandle <int> firstSubscriptionHandle = await consumer.BecomeConsumer(streamGuid, streamNamespace, streamProviderName);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);
            await producer.StopPeriodicProducing();

            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 1, lastTry), Timeout);

            // Resume
            StreamSubscriptionHandle <int> resumeHandle = await consumer.Resume(firstSubscriptionHandle);

            Assert.AreEqual(firstSubscriptionHandle, resumeHandle, "Handle matches");

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);
            await producer.StopPeriodicProducing();

            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 1, lastTry), Timeout);

            // remove subscription
            await consumer.StopConsuming(resumeHandle);
        }
        public void CreateFromFileHandleOperation_OwnsHandle_CalledOnce()
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                var attr = (FsFactAttribute)Attribute.GetCustomAttribute(MethodBase.GetCurrentMethod(),
                                                                         typeof(FsFactAttribute));
                var fileSystemMock = attr.GetMock <IFileSystem>();
                var txFileSystem   = new TxFileSystem(fileSystemMock.Object);

                string fileName   = UnitTestUtils.GetTempFileName(txFileSystem);
                var    fileAccess = FileAccess.ReadWrite;
                var    filePtr    = NativeMethods.CreateFile(fileName, fileAccess, FileShare.ReadWrite, IntPtr.Zero,
                                                             FileMode.OpenOrCreate, FileAttributes.Normal, IntPtr.Zero);
                var ownsHandle = false;

                var fileStreamMock = new Mock <FileStream>(MockBehavior.Loose, filePtr, fileAccess, ownsHandle);

                fileSystemMock.Setup(f => f.FileStream.Create(It.Is <IntPtr>((p) => p == filePtr),
                                                              It.Is <FileAccess>((a) => a == fileAccess), It.Is <bool>((o) => o == ownsHandle)))
                .Returns(fileStreamMock.Object);

                var fileStreamReturned = txFileSystem.FileStream.Create(filePtr, fileAccess, ownsHandle);

                fileSystemMock.Verify(f => f.FileStream.Create(It.Is <IntPtr>((p) => p == filePtr),
                                                               It.Is <FileAccess>((a) => a == fileAccess), It.Is <bool>((o) => o == ownsHandle)), Times.Once);

                Assert.Equal(fileStreamMock.Object, fileStreamReturned);

                NativeMethods.CloseHandle(filePtr);

                new FileSystem().File.Delete(fileName);
            }
        }
Esempio n. 7
0
        public void BeforeTests()
        {
            UnitTestUtils.LoadOfflineData();
            UnitTestUtils.LoadMockPlayerData();

            mBuildingUnderTest = BuildingUpgradeTests.GetTestBuilding();
        }
        public async Task MultipleSubscriptionTest(Guid streamGuid, string streamNamespace)
        {
            // get producer and consumer
            ISampleStreaming_ProducerGrain     producer = SampleStreaming_ProducerGrainFactory.GetGrain(Guid.NewGuid());
            IMultipleSubscriptionConsumerGrain consumer = MultipleSubscriptionConsumerGrainFactory.GetGrain(Guid.NewGuid());

            // setup two subscriptions
            StreamSubscriptionHandle <int> firstSubscriptionHandle = await consumer.BecomeConsumer(streamGuid, streamNamespace, streamProviderName);

            StreamSubscriptionHandle <int> secondSubscriptionHandle = await consumer.BecomeConsumer(streamGuid, streamNamespace, streamProviderName);

            // produce some messages
            await producer.BecomeProducer(streamGuid, streamNamespace, streamProviderName);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);
            await producer.StopPeriodicProducing();

            // check
            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 2, lastTry), Timeout);

            // unsubscribe
            await consumer.StopConsuming(firstSubscriptionHandle);

            await consumer.StopConsuming(secondSubscriptionHandle);
        }
Esempio n. 9
0
        public async void JapaneseFilenameCheck()
        {
            // 日本語名のファイルが正しく取得できていることを確認する
            var path = await UnitTestUtils.GetVersionedFiles();

            Assert.True(path.Where(v => v.EndsWith("日本語のファイル.md")).Count() == 1);
            Assert.True(path.Where(v => v.EndsWith("日本語のファイルだみー.md")).Count() == 0);
        }
Esempio n. 10
0
 public void BeforeTests()
 {
     UnitTestUtils.LoadOfflineData();
     mUnit = new Unit(GenericDataLoader.GetData <UnitData>(GenericDataLoader.TEST_UNIT),
                      new UnitProgress()
     {
         Level = 1, Trainers = 1
     },
                      new ViewModel());
 }
Esempio n. 11
0
        private StackTraceDeminifier GetStackTraceDeminifierWithDependencies()
        {
            var sourceMapProviderMock = new Mock <ISourceMapProvider>();

            sourceMapProviderMock
            .Setup(x => x.GetSourceMapContentsForCallstackUrl("http://localhost:11323/closurecrashcauser.minified.js"))
            .Returns(UnitTestUtils.StreamReaderFromString(SourceMapString));
            var sourceMapProvider = sourceMapProviderMock.Object;

            return(StackTraceDeminfierFactory.GetStackTraceDeminfier(sourceMapProvider));
        }
Esempio n. 12
0
        public void TestCallBachelier(int dim, SobolDirection direction)
        {
            var gaussianGen = RandomGenerators.GaussianSobol(direction).Build(dim);

            var chrono = new Stopwatch();

            chrono.Start();

            var       atmCalls    = new double[dim];
            var       strikeCall1 = new double[dim];
            var       strikeCall2 = new double[dim];
            var       strikePut1  = new double[dim];
            var       strikePut2  = new double[dim];
            const int nbPaths     = 1000000;

            for (int index = 0; index < nbPaths; index++)
            {
                var sample = gaussianGen.Next();
                for (int i = 0; i < dim; i++)
                {
                    var gaussian = sample[i];
                    atmCalls[i]    += Math.Max(0.0, gaussian);
                    strikeCall1[i] += Math.Max(0.0, gaussian - 1.0);
                    strikeCall2[i] += Math.Max(0.0, gaussian - 2.0);
                    strikePut1[i]  += Math.Max(0.0, -1.0 - gaussian);
                    strikePut2[i]  += Math.Max(0.0, -2.0 - gaussian);
                }
            }
            for (int i = 0; i < dim; i++)
            {
                atmCalls[i]    /= nbPaths;
                strikeCall1[i] /= nbPaths;
                strikeCall2[i] /= nbPaths;
                strikePut1[i]  /= nbPaths;
                strikePut2[i]  /= nbPaths;
            }

            chrono.Stop();
            Console.WriteLine("Elapsed " + chrono.Elapsed);

            var refAtmCalls    = atmCalls.Select(c => BachelierOption.Price(0.0, 0.0, 1.0, 1.0, 1)).ToArray();
            var refStrikeCall1 = atmCalls.Select(c => BachelierOption.Price(0.0, 1.0, 1.0, 1.0, 1)).ToArray();
            var refStrikeCall2 = atmCalls.Select(c => BachelierOption.Price(0.0, 2.0, 1.0, 1.0, 1)).ToArray();
            var refStrikePut1  = atmCalls.Select(c => BachelierOption.Price(0.0, -1.0, 1.0, 1.0, -1)).ToArray();
            var refStrikePut2  = atmCalls.Select(c => BachelierOption.Price(0.0, -2.0, 1.0, 1.0, -1)).ToArray();

            UnitTestUtils.EqualDoubleArray(atmCalls, refAtmCalls, 2.0e-5, true);
            UnitTestUtils.EqualDoubleArray(strikeCall1, refStrikeCall1, 8.0e-5, true);
            UnitTestUtils.EqualDoubleArray(strikeCall2, refStrikeCall2, 6.0e-4, true);
            UnitTestUtils.EqualDoubleArray(strikePut1, refStrikePut1, 8.0e-5, true);
            UnitTestUtils.EqualDoubleArray(strikePut2, refStrikePut2, 6.0e-4, true);
        }
        public async Task AddAndRemoveSubscriptionTest(Guid streamGuid, string streamNamespace)
        {
            // get producer and consumer
            ISampleStreaming_ProducerGrain     producer = SampleStreaming_ProducerGrainFactory.GetGrain(Guid.NewGuid());
            IMultipleSubscriptionConsumerGrain consumer = MultipleSubscriptionConsumerGrainFactory.GetGrain(Guid.NewGuid());

            await producer.BecomeProducer(streamGuid, streamNamespace, streamProviderName);

            // setup one subscription and send messsages
            StreamSubscriptionHandle <int> firstSubscriptionHandle = await consumer.BecomeConsumer(streamGuid, streamNamespace, streamProviderName);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);
            await producer.StopPeriodicProducing();

            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 1, lastTry), Timeout);

            // clear counts
            await consumer.ClearNumberConsumed();

            await producer.ClearNumberProduced();

            // setup second subscription and send messages
            StreamSubscriptionHandle <int> secondSubscriptionHandle = await consumer.BecomeConsumer(streamGuid, streamNamespace, streamProviderName);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);
            await producer.StopPeriodicProducing();

            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 2, lastTry), Timeout);

            // clear counts
            await consumer.ClearNumberConsumed();

            await producer.ClearNumberProduced();

            // remove first subscription and send messages
            await consumer.StopConsuming(firstSubscriptionHandle);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);
            await producer.StopPeriodicProducing();

            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 1, lastTry), Timeout);

            // remove second subscription
            await consumer.StopConsuming(secondSubscriptionHandle);
        }
Esempio n. 14
0
        private void State_StateChanged(object sender, ParserStateEventArgs e)
        {
            if (e.State != ParserState.ResolvedDeclarations)
            {
                return;
            }

            _dispatcher.Invoke(() =>
            {
                var tests = UnitTestUtils.GetAllTests(_vbe, _state).ToList();

                var removedTests = Tests.Where(test =>
                                               !tests.Any(t =>
                                                          t.Declaration.ComponentName == test.Declaration.ComponentName &&
                                                          t.Declaration.IdentifierName == test.Declaration.IdentifierName &&
                                                          t.Declaration.ProjectId == test.Declaration.ProjectId)).ToList();

                // remove old tests
                foreach (var test in removedTests)
                {
                    Tests.Remove(test);
                }

                // update declarations for existing tests--declarations are immutable
                foreach (var test in Tests.Except(removedTests))
                {
                    var declaration = tests.First(t =>
                                                  t.Declaration.ComponentName == test.Declaration.ComponentName &&
                                                  t.Declaration.IdentifierName == test.Declaration.IdentifierName &&
                                                  t.Declaration.ProjectId == test.Declaration.ProjectId).Declaration;

                    test.SetDeclaration(declaration);
                }

                // add new tests
                foreach (var test in tests)
                {
                    if (!Tests.Any(t =>
                                   t.Declaration.ComponentName == test.Declaration.ComponentName &&
                                   t.Declaration.IdentifierName == test.Declaration.IdentifierName &&
                                   t.Declaration.ProjectId == test.Declaration.ProjectId))
                    {
                        Tests.Add(test);
                    }
                }
            });

            OnTestsRefreshed();
        }
Esempio n. 15
0
        public void BeforeTest()
        {
            UnitTestUtils.LoadOfflineData();
            mTestModel = new ViewModel();

            UpgradeData testUpgradeData = new UpgradeData();

            testUpgradeData.MaxLevel      = 50;
            testUpgradeData.PropertyName  = "Level";
            testUpgradeData.BaseXpToLevel = 1000;

            mUpgradeable = new PointsUpgradeable();
            mUpgradeable.SetPropertyToUpgrade(mTestModel, testUpgradeData);
            mUpgradeable.Value = 1;
        }
Esempio n. 16
0
        public void Discovery_IgnoresNonAnnotatedTestMethods()
        {
            var testMethods = @"Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods);

            var vbe = builder.AddProject(project.Build()).Build().Object;

            using (var state = MockParser.CreateAndParse(vbe))
            {
                Assert.IsFalse(UnitTestUtils.GetAllTests(vbe, state).Any());
            }
        }
Esempio n. 17
0
        public void BeforeTest()
        {
            UnitTestUtils.LoadOfflineData();
            mTestModel = new ViewModel();

            UpgradeData testUpgradeData = new UpgradeData();

            testUpgradeData.MaxLevel           = 50;
            testUpgradeData.PropertyName       = "Level";
            testUpgradeData.ResourcesToUpgrade = new Dictionary <string, int>()
            {
                { "Gold", 1000 }
            };

            mUpgrade = new Upgradeable();
            mUpgrade.SetPropertyToUpgrade(mTestModel, testUpgradeData);
        }
Esempio n. 18
0
        public void BeforeTests()
        {
            UnitTestUtils.LoadOfflineData();
            mUnit = new Unit(GenericDataLoader.GetData <UnitData>(GenericDataLoader.TEST_UNIT),
                             new UnitProgress()
            {
                Level = 1, Trainers = 1
            },
                             new ViewModel());

            mModData = new UnitModificationData();
            mModData.BaseModifier  = DEFAULT_BASE_MODIFIER;
            mModData.UnitsModified = new List <string>()
            {
                GenericDataLoader.TEST_UNIT
            };
            mModData.StatModified = TestUnitStats.TEST_STAT_1;
        }
        public void CreateFromFileHandleOperation_ExceptionThrown_ContentsUnchanged()
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                var fileSystem   = new FileSystem();
                var txFileSystem = new TxFileSystem(fileSystem);

                string fileName = UnitTestUtils.GetTempFileName(txFileSystem);

                var streamWriter = txFileSystem.File.CreateText(fileName);
                streamWriter.Write("Original contents" + Environment.NewLine);
                streamWriter.Flush();
                streamWriter.Close();

                var filePtr = NativeMethods.CreateFile(fileName, FileAccess.ReadWrite, FileShare.ReadWrite, IntPtr.Zero,
                                                       FileMode.OpenOrCreate, FileAttributes.Normal, IntPtr.Zero);

                Stream fileStream = null;
                var    data       = Encoding.Default.GetBytes("Written" + Environment.NewLine);

                Assert.ThrowsAny <Exception>(() =>
                {
                    using (var transactionScope = new TransactionScope())
                    {
                        txFileSystem = new TxFileSystem(fileSystem);
                        fileStream   = txFileSystem.FileStream.Create(filePtr, FileAccess.ReadWrite);
                        fileStream.Seek(fileStream.Length, SeekOrigin.Begin);
                        fileStream.SetLength(fileStream.Length + data.Length);
                        fileStream.Write(data, 0, data.Length);
                        fileStream.Flush();

                        throw new Exception("Error occurred right after writing to stream");
                    }
                });

                NativeMethods.CloseHandle(filePtr);
                fileStream.Close();

                Assert.Equal("Original contents" + Environment.NewLine, txFileSystem.File.ReadAllText(fileName));

                txFileSystem.File.Delete(fileName);
            }
        }
Esempio n. 20
0
        private async Task StreamingTests_Consumer_Producer(Guid streamId, string streamProvider)
        {
            // consumer joins first, producer later
            ISampleStreaming_ConsumerGrain consumer = SampleStreaming_ConsumerGrainFactory.GetGrain(Guid.NewGuid());
            await consumer.BecomeConsumer(streamId, StreamNamespace, streamProvider);

            ISampleStreaming_ProducerGrain producer = SampleStreaming_ProducerGrainFactory.GetGrain(Guid.NewGuid());
            await producer.BecomeProducer(streamId, StreamNamespace, streamProvider);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);

            await producer.StopPeriodicProducing();

            await UnitTestUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, lastTry), _timeout);

            await consumer.StopConsuming();
        }
Esempio n. 21
0
        public void Discovery_IgnoresNonAnnotatedTestMethods()
        {
            var testMethods = @"Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods);

            var vbe    = builder.AddProject(project.Build()).Build().Object;
            var parser = MockParser.Create(vbe);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            Assert.IsFalse(UnitTestUtils.GetAllTests(vbe, parser.State).Any());
        }
        public void CreateFromSafeFileHandleOperation_ContentsChanged()
        {
            var fileSystem   = new FileSystem();
            var txFileSystem = new TxFileSystem(fileSystem);

            string fileName = UnitTestUtils.GetTempFileName(txFileSystem);

            var streamWriter = txFileSystem.File.CreateText(fileName);

            streamWriter.Write("Original contents" + Environment.NewLine);
            streamWriter.Flush();
            streamWriter.Close();

            var filePtr = NativeMethods.CreateFile(fileName, FileAccess.ReadWrite, FileShare.ReadWrite, IntPtr.Zero,
                                                   FileMode.OpenOrCreate, FileAttributes.Normal, IntPtr.Zero);
            var safeFileHandle = new SafeFileHandle(filePtr, ownsHandle: true);

            Stream fileStream = null;

            using (var transactionScope = new TransactionScope())
            {
                txFileSystem = new TxFileSystem(fileSystem);
                fileStream   = txFileSystem.FileStream.Create(safeFileHandle, FileAccess.ReadWrite);
                var data = Encoding.Default.GetBytes("Written" + Environment.NewLine);
                fileStream.Seek(fileStream.Length, SeekOrigin.Begin);
                fileStream.SetLength(fileStream.Length + data.Length);
                fileStream.Write(data, 0, data.Length);
                fileStream.Flush();

                transactionScope.Complete();
            }

            NativeMethods.CloseHandle(filePtr);
            fileStream.Close();

            Assert.Equal("Original contents" + Environment.NewLine
                         + "Written" + Environment.NewLine, txFileSystem.File.ReadAllText(fileName));

            txFileSystem.File.Delete(fileName);
        }
Esempio n. 23
0
        private async Task StreamingTests_Producer_InlineConsumer(Guid streamId, string streamProvider)
        {
            // producer joins first, consumer later
            ISampleStreaming_ProducerGrain producer = SampleStreaming_ProducerGrainFactory.GetGrain(Guid.NewGuid());
            await producer.BecomeProducer(streamId, streamProvider);

            ISampleStreaming_InlineConsumerGrain consumer = SampleStreaming_InlineConsumerGrainFactory.GetGrain(Guid.NewGuid());
            await consumer.BecomeConsumer(streamId, streamProvider);

            await producer.StartPeriodicProducing();

            Thread.Sleep(1000);

            await producer.StopPeriodicProducing();

            //int numProduced = producer.NumberProduced.Result;

            await UnitTestUtils.WaitUntilAsync(() => CheckCounters( producer, consumer, assertAreEqual : false ), _timeout);

            await CheckCounters(producer, consumer);

            await consumer.StopConsuming();
        }
Esempio n. 24
0
        public void Discovery_IgnoresNonAnnotatedTestMethods()
        {
            var testMethods = @"Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
                          .AddComponent("TestModule1", vbext_ComponentType.vbext_ct_StdModule, GetTestModuleInput + testMethods);

            var vbe      = builder.AddProject(project.Build()).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock <ISinks>().Object));

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            Assert.IsFalse(UnitTestUtils.GetAllTests(vbe.Object, parser.State).Any());
        }
Esempio n. 25
0
        public void CreateFromPathHandleOperation_Open_ExceptionThrown_ContentsUnchanged()
        {
            var fileSystem   = new FileSystem();
            var txFileSystem = new TxFileSystem(fileSystem);

            string fileName = UnitTestUtils.GetTempFileName(txFileSystem);

            var streamWriter = txFileSystem.File.CreateText(fileName);

            streamWriter.Write("Original contents" + Environment.NewLine);
            streamWriter.Flush();
            streamWriter.Close();

            Stream fileStream = null;
            var    data       = Encoding.Default.GetBytes("Written" + Environment.NewLine);

            Assert.ThrowsAny <Exception>(() =>
            {
                using (var transactionScope = new TransactionScope())
                {
                    txFileSystem = new TxFileSystem(fileSystem);
                    fileStream   = txFileSystem.FileStream.Create(fileName, FileMode.Open);
                    fileStream.Seek(fileStream.Length, SeekOrigin.Begin);
                    fileStream.SetLength(fileStream.Length + data.Length);
                    fileStream.Write(data, 0, data.Length);
                    fileStream.Flush();

                    throw new Exception("Error occurred right after writing to stream");
                }
            });

            fileStream.Close();

            Assert.Equal("Original contents" + Environment.NewLine, txFileSystem.File.ReadAllText(fileName));

            txFileSystem.File.Delete(fileName);
        }
Esempio n. 26
0
        public void ParseSourceCode_TwoSingleLineFunctions_TwoFunctionMapEntries()
        {
            // Arrange
            FunctionMapGenerator functionMapGenerator = new FunctionMapGenerator();
            string sourceCode = "function foo(){bar();}function bar(){baz();}";

            // Act
            List <FunctionMapEntry> functionMap = functionMapGenerator.ParseSourceCode(UnitTestUtils.StreamReaderFromString(sourceCode));

            // Assert
            Assert.AreEqual(2, functionMap.Count);

            Assert.AreEqual("bar", functionMap[0].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[0].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(31, functionMap[0].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(0, functionMap[0].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[0].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(36, functionMap[0].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(44, functionMap[0].EndSourcePosition.ZeroBasedColumnNumber);

            Assert.AreEqual("foo", functionMap[1].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[1].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(9, functionMap[1].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(0, functionMap[1].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[1].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(14, functionMap[1].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(22, functionMap[1].EndSourcePosition.ZeroBasedColumnNumber);
        }
Esempio n. 27
0
        public void ParseSourceCode_MultiLineFunctionInSource_CorrectColumnAndZeroBasedLineNumbers()
        {
            // Arrange
            FunctionMapGenerator functionMapGenerator = new FunctionMapGenerator();
            string sourceCode = "function foo()" + Environment.NewLine + "{" + Environment.NewLine + "bar();" +
                                Environment.NewLine + "}";

            // Act
            List <FunctionMapEntry> functionMap = functionMapGenerator.ParseSourceCode(UnitTestUtils.StreamReaderFromString(sourceCode));

            // Assert
            Assert.AreEqual(1, functionMap.Count);
            Assert.AreEqual("foo", functionMap[0].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[0].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(9, functionMap[0].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(1, functionMap[0].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(3, functionMap[0].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[0].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(1, functionMap[0].EndSourcePosition.ZeroBasedColumnNumber);
        }
Esempio n. 28
0
        public void ParseSourceCode_NoFunctionsInSource_EmptyFunctionList()
        {
            // Arrange
            FunctionMapGenerator functionMapGenerator = new FunctionMapGenerator();
            string sourceCode = "bar();";

            // Act
            List <FunctionMapEntry> functionMap = functionMapGenerator.ParseSourceCode(UnitTestUtils.StreamReaderFromString(sourceCode));

            // Assert
            Assert.AreEqual(0, functionMap.Count);
        }
Esempio n. 29
0
        public void ParseSourceCode_InstanceMethodWithObjectInitializerAndFunctionHasName_FunctionMapEntryGeneratedForObjectPrototype()
        {
            // Arrange
            FunctionMapGenerator functionMapGenerator = new FunctionMapGenerator();
            string sourceCode = "var foo = function(){} foo.prototype = { bar: function myCoolFunctionName() { baz(); } }";

            // Act
            List <FunctionMapEntry> functionMap = functionMapGenerator.ParseSourceCode(UnitTestUtils.StreamReaderFromString(sourceCode));

            // Assert
            Assert.AreEqual(2, functionMap.Count);

            Assert.AreEqual("foo.prototype", functionMap[0].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[0].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(23, functionMap[0].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual("bar", functionMap[0].Bindings[1].Name);
            Assert.AreEqual(0, functionMap[0].Bindings[1].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(41, functionMap[0].Bindings[1].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(0, functionMap[0].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[0].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(76, functionMap[0].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(86, functionMap[0].EndSourcePosition.ZeroBasedColumnNumber);

            Assert.AreEqual("foo", functionMap[1].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[1].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(4, functionMap[1].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(0, functionMap[1].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[1].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(20, functionMap[1].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(22, functionMap[1].EndSourcePosition.ZeroBasedColumnNumber);
        }
Esempio n. 30
0
        public void ParseSourceCode_StaticMethodAndFunctionHasName_FunctionMapEntryGeneratedForPropertyName()
        {
            // Arrange
            FunctionMapGenerator functionMapGenerator = new FunctionMapGenerator();
            string sourceCode = "var foo = function(){};foo.bar = function myCoolFunctionName() { baz(); }";

            // Act
            List <FunctionMapEntry> functionMap = functionMapGenerator.ParseSourceCode(UnitTestUtils.StreamReaderFromString(sourceCode));

            // Assert
            Assert.AreEqual(2, functionMap.Count);

            Assert.AreEqual("foo.bar", functionMap[0].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[0].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(23, functionMap[0].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(0, functionMap[0].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[0].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(63, functionMap[0].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(73, functionMap[0].EndSourcePosition.ZeroBasedColumnNumber);

            Assert.AreEqual("foo", functionMap[1].Bindings[0].Name);
            Assert.AreEqual(0, functionMap[1].Bindings[0].SourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(4, functionMap[1].Bindings[0].SourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(0, functionMap[1].StartSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(0, functionMap[1].EndSourcePosition.ZeroBasedLineNumber);
            Assert.AreEqual(20, functionMap[1].StartSourcePosition.ZeroBasedColumnNumber);
            Assert.AreEqual(22, functionMap[1].EndSourcePosition.ZeroBasedColumnNumber);
        }