Esempio n. 1
0
        public void TestShopUndo()
        {
            TestReceiver tr   = new TestReceiver(1, 1);
            Shop         shop = new Shop(tr);

            Assert.IsFalse(shop.Undo());
            Assert.IsFalse(shop.Redo());
            shop.addToSell(new Item(0, "HP low", PotionType.health, 15));
            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            shop.addToCart(new Item(0, "BF", PotionType.buff, 75));
            shop.addToSell(new Item(0, "DMG low", PotionType.buff, 20));
            shop.addToSell(new Item(0, "DMG low", PotionType.damage, 20));
            shop.addToCart(new Item(0, "BF", PotionType.buff, 75));
            Assert.IsTrue(shop.Undo());
            Assert.IsTrue(shop.Undo());
            Assert.IsTrue(shop.Undo());
            Assert.IsTrue(shop.Undo());
            shop.execute();
            Assert.IsFalse(shop.Undo());
            Assert.IsFalse(shop.Redo());
            tr.SetExpectedValues(0, 0);
            shop.execute();
            Assert.IsFalse(shop.Undo());
            Assert.IsFalse(shop.Redo());
        }
        public void DisposeTest()
        {
            Func <TestReceiverOptions, IReceiver> createReceiver = options =>
            {
                return(new TestReceiver("MyTestReceiver", options.TestSetting1, options.TestSetting2));
            };

            var initialOptions = new TestReceiverOptions
            {
                TestSetting1 = "InitialTestSetting1",
                TestSetting2 = "InitialTestSetting2"
            };

            var mockOptionsMonitor = new Mock <IOptionsMonitor <TestReceiverOptions> >(MockBehavior.Strict);
            var mockChangeListener = new Mock <IDisposable>();

            mockOptionsMonitor.Setup(m => m.Get("MyReloadingReceiver")).Returns(initialOptions);
            mockOptionsMonitor.Setup(m => m.OnChange(It.IsAny <Action <TestReceiverOptions, string> >()))
            .Returns(mockChangeListener.Object);

            Action <TestReceiverOptions> configureOptions = options => { };

            IReceiver receiver = ReloadingReceiver.New("MyReloadingReceiver",
                                                       createReceiver, mockOptionsMonitor.Object, configureOptions);

            TestReceiver testReceiver = ((dynamic)receiver).Receiver;

            testReceiver.Disposed.Should().BeFalse();
            mockChangeListener.Verify(m => m.Dispose(), Times.Never());

            receiver.Dispose();

            testReceiver.Disposed.Should().BeTrue();
            mockChangeListener.Verify(m => m.Dispose());
        }
Esempio n. 3
0
        public void TestShopRedoAfterRedoAndNewState()
        {
            TestReceiver tr   = new TestReceiver(2, 2);
            Shop         shop = new Shop(tr);

            shop.addToSell(new Item(0, "HP low", PotionType.health, 15));
            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            shop.addToSell(new Item(0, "HP low", PotionType.health, 15));
            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            shop.addToSell(new Item(0, "HP low", PotionType.health, 15));
            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            Assert.IsTrue(shop.Undo());
            Assert.IsTrue(shop.Undo());
            Assert.IsTrue(shop.Undo());
            Assert.IsTrue(shop.Redo());
            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            Assert.IsFalse(shop.Redo());
            shop.execute();
            Assert.IsFalse(shop.Undo());
            Assert.IsFalse(shop.Redo());
            tr.SetExpectedValues(0, 0);
            shop.execute();
            Assert.IsFalse(shop.Undo());
            Assert.IsFalse(shop.Redo());
        }
Esempio n. 4
0
        public void T00_ResumeEmpty()
        {
            T00_LogInit();
            IRegionManager rmgr = new RegionExposedFiles(InitMode.NEW_REGION, "c:\\BENDtst\\1");
            TestReceiver receiver = new TestReceiver();
            LogWriter lr = LogWriter.LogWriter_Resume(rmgr, receiver);

            Assert.AreEqual(receiver.cmds.Count, 0, "there should be no log records");
        }
Esempio n. 5
0
        public void TestShopEmpty()
        {
            TestReceiver tr   = new TestReceiver(0, 0);
            Shop         shop = new Shop(tr);

            shop.execute();
            tr.SetExpectedValues(0, 0);
            shop.execute();
        }
        public void ThrowIfNoHandlers()
        {
            var handler  = new NoHandlersResolver();
            var storage  = new GlobalStorage(handler);
            var receiver = new TestReceiver();

            var e = Assert.Throws <Exception>(() => storage.On().Add(receiver));

            Assert.AreEqual("Can't bind method TestReceiver to global: No methods matched signature", e.Message);
        }
        public void DynamicDispose()
        {
            var receiver = new TestReceiver();

            Storage.On <TestEntity>().Add(receiver);
            Assert.AreEqual(2, Storage.On <TestEntity>().Count);

            Storage.On <TestEntity>().Dispose();
            Assert.AreEqual(0, Storage.On <TestEntity>().Count);
        }
Esempio n. 8
0
        public void TestShopSelling()
        {
            TestReceiver tr   = new TestReceiver(0, 2);
            Shop         shop = new Shop(tr);

            shop.addToSell(new Item(0, "BF low", PotionType.buff, 10));
            shop.addToSell(new Item(0, "DMG low", PotionType.damage, 20));
            shop.execute();
            tr.SetExpectedValues(0, 0);
            shop.execute();
        }
        public void DisposeEntity()
        {
            var receiver = new TestReceiver();
            var entity   = new TestEntity();

            Storage.On(entity).Add(receiver);
            Assert.AreEqual(2, Storage.On(entity).Count);

            Storage.On(entity).Dispose();
            Assert.AreEqual(0, Storage.On(entity).Count);
        }
Esempio n. 10
0
        public void TestShopBuying()
        {
            TestReceiver tr   = new TestReceiver(4, 0);
            Shop         shop = new Shop(tr);

            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            shop.addToCart(new Item(0, "BF", PotionType.buff, 75));
            shop.addToCart(new Item(0, "DMG", PotionType.damage, 63));
            shop.addToCart(new Item(0, "BF2", PotionType.buff, 42));
            shop.execute();
            tr.SetExpectedValues(0, 0);
            shop.execute();
        }
        public void TestTwoParameterCommand()
        {
            TestReceiver receiver1 = new TestReceiver();
            ICommand testMessageOutputCommand = new
                DelegateCommand<string, string>(receiver1.ReceiverAction, "hello", "yunyun");

            using (var writer = new StringWriter())
            {
                Console.SetOut(writer);
                testMessageOutputCommand.Execute();
                Assert.AreEqual("hellois that working yunyun" + Environment.NewLine, writer.ToString());
            }
        }
Esempio n. 12
0
        public void TestShopSellingAndBuying()
        {
            TestReceiver tr   = new TestReceiver(2, 3);
            Shop         shop = new Shop(tr);

            shop.addToCart(new Item(0, "HP", PotionType.health, 50));
            shop.addToCart(new Item(0, "BF", PotionType.buff, 75));
            shop.addToSell(new Item(0, "HP low", PotionType.health, 15));
            shop.addToSell(new Item(0, "BF low", PotionType.buff, 10));
            shop.addToSell(new Item(0, "DMG low", PotionType.damage, 20));
            shop.execute();
            tr.SetExpectedValues(0, 0);
            shop.execute();
        }
        public void GlobalStorage()
        {
            var handler = new MockHandlerResolver(new[] {
                new HandlerMeta(null, typeof(int), 2,
                                EfficientInvoker.ForMethod(typeof(TestReceiver), "HandleSignal"))
            });
            var es = new GlobalStorage(handler);

            RunMeasure(() => {
                var receiver = new TestReceiver();
                es.On().Add(receiver);
                es.On().Send(1);
                es.On().Remove(receiver);
            });
        }
        public void ExpectedExecutionTimeTwoSubOneSource()
        {
            var receiver = new TestReceiver();
            var source   = new TestSource();

            source.Event += (receiver.ReceiveEvent);
            source.Event += (receiver.ReceiveEvent);
            var start = DateTime.Now;

            source.RaiseEvent(this, EventArgs.Empty);
            var elapsed = DateTime.Now - start;

            Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromMilliseconds(1950)));
            Assert.That(elapsed, Is.LessThanOrEqualTo(TimeSpan.FromMilliseconds(2050)));
        }
        public void ConstructorTest()
        {
            Func <TestReceiverOptions, IReceiver> expectedCreateReceiver = options =>
            {
                return(new TestReceiver("MyTestReceiver", options.TestSetting1, options.TestSetting2));
            };

            var testOptions = new TestReceiverOptions
            {
                TestSetting1 = "MyTestSetting1",
                TestSetting2 = "MyTestSetting2"
            };

            var mockOptionsMonitor = new Mock <IOptionsMonitor <TestReceiverOptions> >(MockBehavior.Strict);
            var mockChangeListener = new Mock <IDisposable>(MockBehavior.Strict);

            mockOptionsMonitor.Setup(m => m.Get("MyReloadingReceiver")).Returns(testOptions);
            mockOptionsMonitor.Setup(m => m.OnChange(It.IsAny <Action <TestReceiverOptions, string> >()))
            .Returns(mockChangeListener.Object);

            Action <TestReceiverOptions> expectedConfigureOptions = options => { };

            IReceiver receiver = ReloadingReceiver.New("MyReloadingReceiver",
                                                       expectedCreateReceiver, mockOptionsMonitor.Object, expectedConfigureOptions);

            receiver.Name.Should().Be("MyReloadingReceiver");
            receiver.GetType().Should().Be(ReloadingReceiver);

            dynamic r = receiver;

            Func <TestReceiverOptions, IReceiver> createReceiver = r.CreateReceiver;

            createReceiver.Should().BeSameAs(expectedCreateReceiver);

            Action <TestReceiverOptions> configureOptions = r.ConfigureOptions;

            configureOptions.Should().BeSameAs(expectedConfigureOptions);

            TestReceiver testReceiver = r.Receiver;

            testReceiver.Name.Should().Be("MyTestReceiver");
            testReceiver.TestSetting1.Should().Be("MyTestSetting1");
            testReceiver.TestSetting2.Should().Be("MyTestSetting2");

            IDisposable changeListener = r.ChangeListener;

            changeListener.Should().BeSameAs(mockChangeListener.Object);
        }
        public void ReceiverObject()
        {
            var receiver = new TestReceiver();
            var entity   = new TestEntity();

            Storage.On(entity).Add(receiver);
            Assert.AreEqual(2, Storage.On(entity).Count);

            Storage.On(entity).Send(1);
            Storage.On(entity).Send('t');
            receiver.Verify("IntReceive", 1);
            receiver.Verify("CharReceive", entity, 't');

            Storage.On(entity).Remove(receiver);
            Assert.AreEqual(0, Storage.On(entity).Count);
        }
Esempio n. 17
0
        /// <summary>
        /// This is the equivalent of "RunAll" functionality
        /// </summary>
        /// <param name="sources">Refers to the list of test sources passed to the test adapter from the client.  (Client could be VS or command line)</param>
        /// <param name="runContext">Defines the settings related to the current run</param>
        /// <param name="frameworkHandle">Handle to framework.  Used for recording results</param>
        public void RunTests(IEnumerable <string> sources, ITestDiscoverer discoverer)
        {
            ValidateArg.NotNull(sources, nameof(sources));
            ValidateArg.NotNull(discoverer, nameof(discoverer));

            var receiver = new TestReceiver();

            discoverer.DiscoverTests(sources, /*discoveryContext*/ null, this.frameworkHandle, receiver);

            if (this.cancelRequested.WaitOne(0))
            {
                return;
            }

            this.RunTests(receiver.Tests);
        }
Esempio n. 18
0
        public async Task VerifyAwaitedInvocation()
        {
            var receiver = new TestReceiver();
            var source   = new TestSource();

            source.Event += receiver.ReceiveEvent;
            source.Event += receiver.ReceiveEvent;
            var start = DateTime.Now;
            await source.RaiseEvent(this, EventArgs.Empty);

            var elapsed = DateTime.Now - start;

            Assert.That(elapsed, Is.GreaterThanOrEqualTo(TimeSpan.FromMilliseconds(1000)));
            Assert.That(elapsed, Is.LessThanOrEqualTo(TimeSpan.FromMilliseconds(1150)));
            Assert.That(receiver.CallCount, Is.EqualTo(2));
        }
        public void DynamicEntityStorage()
        {
            var handler = new MockHandlerResolver(new[] {
                new HandlerMeta(typeof(TestEntity), typeof(int), 2,
                                EfficientInvoker.ForMethod(typeof(TestReceiver), "HandleSignal"))
            });
            var es     = new DynamicStorage(handler);
            var entity = new TestEntity();

            RunMeasure(() => {
                var receiver = new TestReceiver();
                es.On <TestEntity>().Add(receiver);
                es.On(entity).Send(1);
                es.On <TestEntity>().Remove(receiver);
            });
        }
        public void OnOptionsChangedTest2()
        {
            Func <TestReceiverOptions, IReceiver> createReceiver = options =>
            {
                return(new TestReceiver("MyTestReceiver", options.TestSetting1, options.TestSetting2));
            };

            var initialOptions = new TestReceiverOptions
            {
                TestSetting1 = "InitialTestSetting1",
                TestSetting2 = "InitialTestSetting2"
            };

            var mockOptionsMonitor = new Mock <IOptionsMonitor <TestReceiverOptions> >(MockBehavior.Strict);
            var mockChangeListener = new Mock <IDisposable>(MockBehavior.Strict);

            Action <TestReceiverOptions, string> onChangeCallback = null;

            mockOptionsMonitor.Setup(m => m.Get("MyReloadingReceiver")).Returns(initialOptions);
            mockOptionsMonitor.Setup(m => m.OnChange(It.IsAny <Action <TestReceiverOptions, string> >()))
            .Callback <Action <TestReceiverOptions, string> >(onChange => onChangeCallback = onChange)
            .Returns(mockChangeListener.Object);

            Action <TestReceiverOptions> configureOptions = options => { };

            IReceiver receiver = ReloadingReceiver.New("MyReloadingReceiver",
                                                       createReceiver, mockOptionsMonitor.Object, configureOptions);
            dynamic r = receiver;

            onChangeCallback.Should().NotBeNull();

            TestReceiver initialTestReceiver = r.Receiver;

            var newOptions = new TestReceiverOptions
            {
                TestSetting1 = "NewTestSetting1",
                TestSetting2 = "NewTestSetting2"
            };

            // Simulate a change to some other receiver:
            onChangeCallback(newOptions, "SomeOtherReceiver");

            TestReceiver newTestReceiver = r.Receiver;

            newTestReceiver.Should().BeSameAs(initialTestReceiver);
            initialTestReceiver.Disposed.Should().BeFalse();
        }
Esempio n. 21
0
        public void SubscribeNullUriWithReceiverTest()
        {
            ArgumentNullException expected = null;
            TestReceiver          receiver = new TestReceiver();
            Uri uri = null;

            try
            {
                FeedEngine.Subscribe(uri, receiver);
            }
            catch (ArgumentNullException ex)
            {
                expected = ex;
            }

            Assert.IsNotNull(expected);
        }
Esempio n. 22
0
        public void SubscribeNullReceiverTest()
        {
            ArgumentNullException expected = null;
            TestReceiver          receiver = null;
            Uri uri = new Uri("http://blog.opennetcf.com");

            try
            {
                FeedEngine.Subscribe(uri, receiver);
            }
            catch (ArgumentNullException ex)
            {
                expected = ex;
            }

            Assert.IsNotNull(expected);
        }
Esempio n. 23
0
        public Task VerifyNonAwaitedInvocation()
        {
            var receiver = new TestReceiver();
            var source   = new TestSource();

            source.Event += (receiver.ReceiveEvent);
            source.Event += (receiver.ReceiveEvent);
            var start = DateTime.Now;

            source.RaiseEvent(this, EventArgs.Empty);
            var elapsed = DateTime.Now - start;

            Assert.That(receiver.CallCount, Is.EqualTo(0));
            Assert.That(elapsed, Is.LessThanOrEqualTo(TimeSpan.FromMilliseconds(100)));

            return(System.Threading.Tasks.Task.CompletedTask);
        }
Esempio n. 24
0
        /// <summary>
        /// This is the equivallent of "RunAll" functionality
        /// </summary>
        /// <param name="sources">Refers to the list of test sources passed to the test adapter from the client.  (Client could be VS or command line)</param>
        /// <param name="runContext">Defines the settings related to the current run</param>
        /// <param name="frameworkHandle">Handle to framework.  Used for recording results</param>
        public void RunTests(IEnumerable<string> sources, IRunContext runContext, IFrameworkHandle frameworkHandle) {
            ValidateArg.NotNull(sources, "sources");
            ValidateArg.NotNull(runContext, "runContext");
            ValidateArg.NotNull(frameworkHandle, "frameworkHandle");

            _cancelRequested.Reset();

            var receiver = new TestReceiver();
            var discoverer = new TestDiscoverer();
            discoverer.DiscoverTests(sources, null, frameworkHandle, receiver);

            if (_cancelRequested.WaitOne(0)) {
                return;
            }

            RunTestCases(receiver.Tests, runContext, frameworkHandle);
        }
        public void ProcessReceiverClass()
        {
            var es       = new EntitySignals();
            var entity   = Object.Instantiate(new GameObject());
            var receiver = new TestReceiver();

            es.On(entity).Add(receiver);
            Assert.AreEqual(2, es.On(entity).Count);

            es.On(entity).Send(1);
            es.On(entity).Send('t');
            es.On(entity).Remove(receiver);

            Assert.AreEqual(0, es.On(entity).Count);
            receiver.Verify("First", entity, 1);
            receiver.Verify("Second", 't');
        }
Esempio n. 26
0
        //TODO シリアル用テストケースは追加必要。CygwinはTelnetと同じなのでまあいいだろう

        //TODO ITerminalOutputのテスト。正しく送信されたかを確認するのは難しい感じもするが

        //TODO Reproduceサポートの後、SSH2で1Connection-複数Channelを開き、個別に開閉してみる

        private ITerminalConnection CreateTelnetConnection()
        {
            ITCPParameter tcp = _protocolService.CreateDefaultTelnetParameter();

            tcp.Destination = UnitTestUtil.GetUnitTestConfig("protocols.telnet_connectable");
            Debug.Assert(tcp.Port == 23);

            ISynchronizedConnector sc  = _protocolService.CreateFormBasedSynchronozedConnector(null);
            IInterruptable         t   = _protocolService.AsyncTelnetConnect(sc.InterruptableConnectorClient, tcp);
            ITerminalConnection    con = sc.WaitConnection(t, 5000);

            //Assert.ReferenceEquals(con.Destination, tcp); //なぜか成立しない
            Debug.Assert(con.Destination == tcp);
            _rawsocket    = ((InterruptableConnector)t).RawSocket;
            _testReceiver = new TestReceiver();
            con.Socket.RepeatAsyncRead(_testReceiver);
            return(con);
        }
        public void ProcessReceiverClassMethods()
        {
            var es       = new EntitySignals();
            var entity   = Object.Instantiate(new GameObject());
            var receiver = new TestReceiver();

            es.On(entity).Add((ESHandler <GameObject, int>)receiver.OnGameObjectSignal);
            es.On(entity).Add((ESHandler <char>)receiver.OnGameObjectSignal);
            Assert.AreEqual(2, es.On(entity).Count);

            es.On(entity).Send(1);
            es.On(entity).Send('t');
            es.On(entity).Dispose();

            Assert.AreEqual(0, es.On(entity).Count);
            receiver.Verify("First", entity, 1);
            receiver.Verify("Second", 't');
        }
Esempio n. 28
0
        public void RunTests(IEnumerable <string> sources, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            ValidateArg.NotNull(sources, "sources");
            ValidateArg.NotNull(runContext, "runContext");
            ValidateArg.NotNull(frameworkHandle, "frameworkHandle");

            _cancelRequested.Reset();

            var receiver = new TestReceiver();

            TestDiscoverer.DiscoverTests(sources, frameworkHandle, receiver, runContext.RunSettings);

            if (_cancelRequested.WaitOne(0))
            {
                return;
            }

            RunTestCases(receiver.Tests, runContext, frameworkHandle);
        }
        public void ReceiverMethodReference()
        {
            var receiver  = new TestReceiver();
            var entity    = new TestEntity();
            var delegateA = new ESHandler <int>(receiver.IntReceive);
            var delegateB = new ESHandler <TestEntity, char>(receiver.CharReceive);

            Storage.On(entity).Add(delegateA);
            Storage.On(entity).Add(delegateB);
            Assert.AreEqual(2, Storage.On(entity).Count);

            Storage.On(entity).Send(1);
            Storage.On(entity).Send('t');
            receiver.Verify("IntReceive", 1);
            receiver.Verify("CharReceive", entity, 't');

            Storage.On(entity).Remove(delegateA);
            Storage.On(entity).Remove(delegateB);
            Assert.AreEqual(0, Storage.On(entity).Count);
        }
Esempio n. 30
0
        private ITerminalConnection CreateSSHConnection(SSHProtocol sshprotocol)
        {
            ISSHLoginParameter ssh = _protocolService.CreateDefaultSSHParameter();

            ssh.Method  = sshprotocol;
            ssh.Account = UnitTestUtil.GetUnitTestConfig("protocols.ssh_account");
            ssh.PasswordOrPassphrase = UnitTestUtil.GetUnitTestConfig("protocols.ssh_password");
            ITCPParameter tcp = (ITCPParameter)ssh.GetAdapter(typeof(ITCPParameter));

            tcp.Destination = UnitTestUtil.GetUnitTestConfig("protocols.ssh_connectable");
            Debug.Assert(tcp.Port == 22);

            ISynchronizedConnector sc  = _protocolService.CreateFormBasedSynchronozedConnector(null);
            IInterruptable         t   = _protocolService.AsyncSSHConnect(sc.InterruptableConnectorClient, ssh);
            ITerminalConnection    con = sc.WaitConnection(t, 5000);

            Debug.Assert(con.Destination == ssh);
            _rawsocket    = ((InterruptableConnector)t).RawSocket;
            _testReceiver = new TestReceiver();
            con.Socket.RepeatAsyncRead(_testReceiver);
            return(con);
        }
Esempio n. 31
0
        /// <summary>
        /// The init.
        /// </summary>
        private void Init()
        {
            //LocalBroadcastManager localBM = LocalBroadcastManager.GetInstance(this);
            _receiver  = new TestReceiver();
            etTextTime = FindViewById <EditText>(Resource.Id.etTextTime);

            Button btnRegisterBroadcast = FindViewById <Button>(Resource.Id.btnRegisterBroadcast);

            btnRegisterBroadcast.Click += (send, e) =>
            {
            };
            Button btnUnRegisterBroadcast = FindViewById <Button>(Resource.Id.btnUnRegisterBroadcast);

            btnUnRegisterBroadcast.Click += (send, e) =>
            {
            };
            Button btnStartServce = FindViewById <Button>(Resource.Id.btnStartServce);

            btnStartServce.Click += (send, e) =>
            {
            };
            Button btnStopService = FindViewById <Button>(Resource.Id.btnStopService);

            btnStopService.Click += (send, e) => {  };

            //
            Button btnStartAlarm = FindViewById <Button>(Resource.Id.btnStartAlarm);

            btnStartAlarm.Click += BtnStartAlarm_Click;

            //
            Button btnStopAlarm = FindViewById <Button>(Resource.Id.btnStopAlarm);

            btnStopAlarm.Click += BtnStopAlarm_Click;
            //
            Button btnTest = FindViewById <Button>(Resource.Id.btnTest);

            btnTest.Click += BtnTest_Click;
        }
        public void ProcessReceiverClass()
        {
            var receiver = new TestReceiver();
            var resolver = new InterfaceHandlersResolver();

            var results = resolver.GetHandlers(typeof(TestReceiver));

            Assert.AreEqual(2, results.Length);

            var intHandler = results.First(m => m.SignalType == typeof(int));

            Assert.AreEqual(2, intHandler.ParamCount);
            Assert.AreEqual(typeof(string), intHandler.RequiredType);
            intHandler.MethodInvoker.Invoke(receiver, "entity", 1);
            receiver.Verify("Int", "entity", 1);

            var charHandler = results.First(m => m.SignalType == typeof(char));

            Assert.AreEqual(2, charHandler.ParamCount);
            Assert.AreEqual(typeof(string), charHandler.RequiredType);
            charHandler.MethodInvoker.Invoke(receiver, "entity", 't');
            receiver.Verify("Char", "entity", 't');
        }
Esempio n. 33
0
        public void SendAfterGarbageCollectTest()
        {
            var messenger = Messenger.CreateInstance();

            var obj = new TestReceiver();

            messenger.Register <TestMessage>(obj, obj.HandleMessage);
            messenger.Send(new TestMessage());

            Assert.True(obj.MsgHandled);

            obj.MsgHandled = false;
            var weakRef = new WeakReference(obj);

            // ReSharper disable once RedundantAssignment
            obj = null;

            CollectGarbage();

            messenger.Send(new TestMessage());

            //Xunit.Assert.False(weakRef.IsAlive);
        }
Esempio n. 34
0
        public void T01_LogCheckpoint()
        {
            IRegionManager rmgr = new RegionExposedFiles(InitMode.NEW_REGION, "c:\\BENDtst\\2");

            byte[] cmddata = { 0x81, 0x82, 0x83 };
            long logWaitNumber;

            {
                // make a new empty log
                TestReceiver receiver = new TestReceiver();
                int system_reserved_space;
                LogWriter lr = LogWriter.LogWriter_NewRegion(rmgr, receiver, out system_reserved_space);
                lr.log_handler.setDebugLogSegments(); // force one command per log segment

                // find out how many empty segments there are...
                int emptySegments = lr.log_handler.emptyLogSegments;

                // add a command to fill up the log segments..

                for (int i = 0; i < emptySegments; i++) {
                    lr.addCommand(LogCommands.UPDATE, cmddata, out logWaitNumber);
                    lr.flushPendingCommandsThrough(logWaitNumber);
                    printLogStatus(lr, String.Format("filling empty segments {0}",i));
                }
                Assert.AreEqual(1, lr.log_handler.emptyLogSegments, "should be no empty log segments");

                printLogStatus(lr, "log almost full");

                // now checkpoint the log
                lr.checkpointStart();

                lr.checkpointDrop(out logWaitNumber);
                lr.flushPendingCommandsThrough(logWaitNumber);

                Assert.LessOrEqual(2, lr.log_handler.activeLogSegments, "should have only <= 2 active log segments");
                printLogStatus(lr, "log checkpoint complete");

                lr.Dispose();
            }
        }
Esempio n. 35
0
        public void T02_LogCheckpointResumeOrder()
        {
            IRegionManager rmgr = new RegionExposedFiles(InitMode.NEW_REGION, "c:\\BENDtst\\2");

            byte[] cmddata = { 0x00 };
            int timestamp = 5;
            long logWaitNumber;

            {
                // make a new empty log
                TestReceiver receiver = new TestReceiver();
                int system_reserved_space;
                LogWriter lr = LogWriter.LogWriter_NewRegion(rmgr, receiver, out system_reserved_space);
                lr.log_handler.setDebugLogSegments(); // force one command per log segment

                // find out how many empty segments there are...

                // (1) add commands to fill up the log segments..
                {
                    int emptySegments = lr.log_handler.emptyLogSegments;
                    for (int i = 0; i < emptySegments; i++) {
                        cmddata[0] = (byte)timestamp;
                        timestamp++;
                        lr.addCommand(LogCommands.UPDATE, cmddata, out logWaitNumber);
                        lr.flushPendingCommandsThrough(logWaitNumber);
                        printLogStatus(lr, String.Format("filling empty segments {0}", i));
                    }
                    Assert.AreEqual(1, lr.log_handler.emptyLogSegments, "should be no empty log segments 1");

                    printLogStatus(lr, "log almost full");
                }

                // (2) checkpoint the log
                {
                    lr.checkpointStart();

                    lr.checkpointDrop(out logWaitNumber);
                    lr.flushPendingCommandsThrough(logWaitNumber);

                    Assert.LessOrEqual(1, lr.log_handler.activeLogSegments, "should have only <= 2 active log segments");
                    printLogStatus(lr, "log checkpoint complete");
                }

                // (3) add commands to fill newly free log segments
                {
                    int emptySegments = lr.log_handler.emptyLogSegments;
                    for (int i = 0; i < emptySegments; i++) {
                        cmddata[0] = (byte)timestamp;
                        timestamp++;
                        lr.addCommand(LogCommands.UPDATE, cmddata, out logWaitNumber);
                        lr.flushPendingCommandsThrough(logWaitNumber);
                        printLogStatus(lr, String.Format("filling empty segments {0}", i));
                    }
                    Assert.LessOrEqual(lr.log_handler.emptyLogSegments, 1, "should be no empty log segments 2");
                    printLogStatus(lr, "log almost full 2");
                }

                // (4) shutdown
                lr.Dispose();
            }

            // (5) now resume, make sure we resume in order
            {
                TestReceiver receiver = new TestReceiver();
                LogWriter lr = LogWriter.LogWriter_Resume(rmgr, receiver);

                int cur = 0;
                foreach (var cmd in receiver.cmds) {
                    if (cmd.cmd == LogCommands.UPDATE) {
                        Console.WriteLine("Resume Record : {0} {1}", cmd.cmd.ToString(), cmd.cmddata[0]);
                        Assert.Greater(cmd.cmddata[0], cur, "order should be increasing");

                        cur = cmd.cmddata[0];
                    } else {
                        Console.WriteLine("empty command : {0}", cmd.cmd.ToString());
                    }
                }
            }
        }
Esempio n. 36
0
        public void T00_ResumeWithRecords()
        {
            IRegionManager rmgr = new RegionExposedFiles(InitMode.NEW_REGION, "c:\\BENDtst\\2");

            byte[] cmddata = { 0x81, 0x82, 0x83 };
            const int NUM_COMMANDS = 3;

            // make a new empty log
            {
                int system_reserved_space;
                LogWriter lr = LogWriter.LogWriter_NewRegion(rmgr, new DummyLogReceiver(), out system_reserved_space);
                lr.log_handler.setDebugLogSegments();

                Assert.AreEqual(1, lr.log_handler.activeLogSegments, "one active log segment");

                // add NUM_COMMANDS records to the log
                long logWaitNumber;
                for (int i=0;i<NUM_COMMANDS;i++) {
                    lr.addCommand(LogCommands.UPDATE, cmddata, out logWaitNumber);
                    lr.flushPendingCommands();

                    printLogStatus(lr, String.Format("addCommand iteration {0}", i));
                }
                lr.Dispose();
            }
            // reinit and resume from the log
            {
                TestReceiver receiver = new TestReceiver();
                LogWriter lr = LogWriter.LogWriter_Resume(rmgr, receiver);

                Assert.AreEqual(NUM_COMMANDS, lr.log_handler.activeLogSegments, "should be NUM_COMMANDS log segments");
                Assert.AreEqual(NUM_COMMANDS, receiver.cmds.Count, "number of log records incorrect");
                Assert.AreEqual(LogCommands.UPDATE, receiver.cmds[0].cmd, "cmdbyte should match");
                Assert.AreEqual(cmddata, receiver.cmds[0].cmddata, "cmddata should match");
                lr.Dispose();
            }
            // assert the log had the records
        }
Esempio n. 37
0
        public void T01_OverflowLog()
        {
            IRegionManager rmgr = new RegionExposedFiles(InitMode.NEW_REGION, "c:\\BENDtst\\2");

            byte[] cmddata = { 0x00 };

            {
                // make a new empty log
                TestReceiver receiver = new TestReceiver();
                int system_reserved_space;
                LogWriter lr = LogWriter.LogWriter_NewRegion(rmgr, receiver, out system_reserved_space);
                lr.log_handler.setDebugLogSegments(); // force one command per log segment

                // find out how many empty segments there are...
                int emptySegments = lr.log_handler.emptyLogSegments;

                // add a command to fill up the log segments..
                long logWaitNumber = 0;
                for (int i = 0; i <= emptySegments; i++) {
                    lr.addCommand(LogCommands.UPDATE, cmddata, out logWaitNumber);
                    lr.flushPendingCommands();
                }
                Assert.AreEqual(0, lr.log_handler.emptyLogSegments, "should be no empty log segments");

                // now add another command.. which should overflow the log segments and send us the log-extend request

                // make sure a write attempt blocks (or fails)

                // make sure a log-extend still succeeds.

                Assert.Fail("INTENTIONAL FAIL - test not fully implemented");

                lr.Dispose();
            }
        }
Esempio n. 38
0
        private ITerminalConnection CreateSSHConnection(SSHProtocol sshprotocol) {
            ISSHLoginParameter ssh = _protocolService.CreateDefaultSSHParameter();
            ssh.Method = sshprotocol;
            ssh.Account = UnitTestUtil.GetUnitTestConfig("protocols.ssh_account");
            ssh.PasswordOrPassphrase = UnitTestUtil.GetUnitTestConfig("protocols.ssh_password");
            ITCPParameter tcp = (ITCPParameter)ssh.GetAdapter(typeof(ITCPParameter));
            tcp.Destination = UnitTestUtil.GetUnitTestConfig("protocols.ssh_connectable");
            Debug.Assert(tcp.Port==22);

            ISynchronizedConnector sc = _protocolService.CreateFormBasedSynchronozedConnector(null);
            IInterruptable t = _protocolService.AsyncSSHConnect(sc.InterruptableConnectorClient, ssh);
            ITerminalConnection con =  sc.WaitConnection(t, 5000);

            Debug.Assert(con.Destination==ssh);
            _rawsocket = ((InterruptableConnector)t).RawSocket;
            _testReceiver = new TestReceiver();
            con.Socket.RepeatAsyncRead(_testReceiver);
            return con;
        }
Esempio n. 39
0
        //TODO シリアル用テストケースは追加必要。CygwinはTelnetと同じなのでまあいいだろう

        //TODO ITerminalOutputのテスト。正しく送信されたかを確認するのは難しい感じもするが

        //TODO Reproduceサポートの後、SSH2で1Connection-複数Channelを開き、個別に開閉してみる

        private ITerminalConnection CreateTelnetConnection() {
            ITCPParameter tcp = _protocolService.CreateDefaultTelnetParameter();
            tcp.Destination = UnitTestUtil.GetUnitTestConfig("protocols.telnet_connectable");
            Debug.Assert(tcp.Port==23);
            
            ISynchronizedConnector sc = _protocolService.CreateFormBasedSynchronozedConnector(null);
            IInterruptable t = _protocolService.AsyncTelnetConnect(sc.InterruptableConnectorClient, tcp);
            ITerminalConnection con =  sc.WaitConnection(t, 5000);

            //Assert.ReferenceEquals(con.Destination, tcp); //なぜか成立しない
            Debug.Assert(con.Destination==tcp);
            _rawsocket = ((InterruptableConnector)t).RawSocket;
            _testReceiver = new TestReceiver();
            con.Socket.RepeatAsyncRead(_testReceiver);
            return con;
        }