Ejemplo n.º 1
0
        public void ShouldOnlyPollUpdatedViewModels()
        {
            // Arrange
            var viewModelToken1 = _knockoutMapper.ConstructViewModel(typeof(TestViewModel)).RefToken;
            var viewModelToken2 = _knockoutMapper.ConstructViewModel(typeof(TestViewModel)).RefToken;
            var viewModel2      = (TestViewModel)_knockoutMapper.GetViewModelObject(viewModelToken2);

            // Act
            var pollThread = new Thread(() => _knockoutMapper.Subscribe(viewModelToken1));

            pollThread.Start();
            viewModel2.StringProperty.Set("New string value");
            pollThread.Join();

            // Assert
            _monitorCollectionMock.Verify(x => x.Wait(viewModelToken1, It.IsAny <int>()), Times.Once());
            _monitorCollectionMock.Verify(x => x.Pulse(viewModelToken2), Times.Once());
        }
Ejemplo n.º 2
0
        public void ShouldPublishPendingChanges()
        {
            // Arrange
            _knockoutMapper = new KnockoutMapper(_operationRegistryMock.Object, new MonitorCollection());
            var viewModelToken = _knockoutMapper.ConstructViewModel(typeof(TestViewModel)).RefToken;

            // Act
            List <ChangeEntry> changeEntries = null;
            var pollThread = new Thread(() => changeEntries = _knockoutMapper.Subscribe(viewModelToken));

            pollThread.Start();
            TestViewModel.Instance.StringProperty.Set("New string value");
            pollThread.Join();

            // Assert
            Assert.That(changeEntries.Count, Is.EqualTo(1));
            Assert.That(changeEntries[0].PropertyName, Is.EqualTo("StringProperty"));
            Assert.That(changeEntries[0].NewValue, Is.EqualTo("New string value"));
        }
Ejemplo n.º 3
0
        public void ShouldPublishPendingChanges()
        {
            // Arrange
            _knockoutMapper = new KnockoutMapper(_operationRegistryMock.Object, new MonitorCollection());
            var viewModelToken = _knockoutMapper.ConstructViewModel(typeof(TestViewModel)).RefToken;

            // Act
            List<ChangeEntry> changeEntries = null;
            var pollThread = new Thread(() => changeEntries = _knockoutMapper.Subscribe(viewModelToken));
            pollThread.Start();
            TestViewModel.Instance.StringProperty.Set("New string value");
            pollThread.Join();

            // Assert
            Assert.That(changeEntries.Count, Is.EqualTo(1));
            Assert.That(changeEntries[0].PropertyName, Is.EqualTo("StringProperty"));
            Assert.That(changeEntries[0].NewValue, Is.EqualTo("New string value"));
        }