示例#1
0
        public void ModifiedElementMatches()
        {
            var element = new NamedElement {
                Name = "new item"
            };
            var vm = new TestElementViewModel(new Mock <IAsyncServiceProvider> ().Object, new Mock <ISyncService>().Object, element);

            Assert.That(vm.Element, Is.EqualTo(element));
            Assert.That(vm.ModifiedElement, Is.EqualTo(element));
        }
示例#2
0
        public void SaveEnabledOnNewItem()
        {
            var sync = new Mock <ISyncService> ();

            sync.Setup(s => s.SaveElementAsync(It.IsAny <NamedElement> ()))
            .Returns <NamedElement> (ne => Task.FromResult(ne));

            var element = new NamedElement {
                Name = "new item"
            };
            var vm = new TestElementViewModel(new Mock <IAsyncServiceProvider> ().Object, sync.Object, element);

            Assert.That(vm.SaveCommand.CanExecute(null), Is.True);
        }
            public void Initialize()
            {
                this.element = new Mock <IAbstractElement>();
                this.element.As <IProductElement>().Setup(x => x.Info).Returns(Mocks.Of <IPatternElementInfo>().First());
                this.element.As <IAbstractElement>().Setup(e => e.Elements).Returns(Enumerable.Empty <IAbstractElement>());

                this.context = new SolutionBuilderContext
                {
                    PatternManager     = Mock.Of <IPatternManager>(),
                    ShowProperties     = () => { },
                    UserMessageService = Mock.Of <IUserMessageService>(ums => ums.PromptWarning(It.IsAny <string>()) == true),
                };

                this.target = new TestElementViewModel <IAbstractElement>(this.element.Object, this.context);
            }
示例#4
0
        public void Save()
        {
            var sync = new Mock <ISyncService> ();

            sync.Setup(s => s.SaveElementAsync(It.IsAny <NamedElement> ()))
            .Returns <NamedElement> (ne => Task.FromResult(ne));

            var element = new NamedElement {
                Id = Guid.NewGuid().ToString(), Name = "existing item"
            };
            var vm = new TestElementViewModel(new Mock <IAsyncServiceProvider> ().Object, sync.Object, element);

            Assume.That(vm.Element, Is.EqualTo(vm.ModifiedElement));
            vm.SetModified(vm.ModifiedElement with {
                Name = "new name"
            });
            Assume.That(vm.SaveCommand.CanExecute(null), Is.True);
            Assume.That(vm.ResetCommand.CanExecute(null), Is.True);

            var propertyChanges = new List <string> ();

            vm.PropertyChanged += (o, e) => {
                propertyChanges.Add(e.PropertyName);
            };

            bool saveCanExecuteChanged = false, resetCanExecuteChanged = false;

            vm.SaveCommand.CanExecuteChanged  += (o, e) => saveCanExecuteChanged = true;
            vm.ResetCommand.CanExecuteChanged += (o, e) => resetCanExecuteChanged = true;
            vm.SaveCommand.Execute(null);

            Assert.That(saveCanExecuteChanged, Is.True);
            Assert.That(vm.SaveCommand.CanExecute(null), Is.False);
            Assert.That(resetCanExecuteChanged, Is.True);
            Assume.That(vm.ResetCommand.CanExecute(null), Is.False);
            Assert.That(propertyChanges, Contains.Item(nameof(TestElementViewModel.Element)));
        }