예제 #1
0
        private static TransformableNodeFactory CreateSut(
            TransformableValue transformableValue = null, IDisposableNodeViewProvider provider = null)
        {
            transformableValue = transformableValue ?? new TransformableValue(null);
            var injectedFactory = Mock.Of <INodeFactory>(f => f.Create(transformableValue) == provider);

            return(new TransformableNodeFactory(injectedFactory, _ => transformableValue));
        }
예제 #2
0
        public void CreateAddsToTransformableDictionary()
        {
            var key = Mock.Of <IDisposableNodeViewProvider>();
            var transformableValue = new TransformableValue(null);
            var sut = CreateSut(transformableValue, key);

            sut.Create(null);

            Assert.IsTrue(sut.TransformableDictionary.ContainsKey(key));
            Assert.AreSame(transformableValue, sut.TransformableDictionary[key]);
        }
예제 #3
0
        public void RaisingTransformableValuesValueChangedCallsProvidersRaiseValueChanged()
        {
            var transformableValue = new TransformableValue(null);
            var providerMock       = new Mock <IDisposableNodeViewProvider>();
            var sut = CreateSut(transformableValue, providerMock.Object);

            sut.Create(null);

            transformableValue.RemoveAll();

            providerMock.Verify(p => p.RaiseValueChanged());
        }
예제 #4
0
        public void RaisingTransformableValuesValueChangedDoesNotCallProvidersRaiseValueChangedAfterDisposal()
        {
            var transformableValue = new TransformableValue(null);
            var providerMock       = new Mock <IDisposableNodeViewProvider>();
            var sut = CreateSut(transformableValue, providerMock.Object);

            sut.Create(null);

            providerMock.Raise(p => p.Disposed += null, EventArgs.Empty);
            transformableValue.RemoveAll();

            providerMock.Verify(p => p.RaiseValueChanged(), Times.Never);
        }