public void GetNewFieldNameTest()
        {
            var section = new SectionEditMock(1, "Test section");
            var vm = new ProcessSectionViewModel(section);

            var pfvm = Mock.Create<ProcessFieldsViewModel>();
            Mock.Arrange(() => pfvm.SectionList).Returns(new ObservableCollection<ProcessSectionViewModel>());

            vm.RefreshAvailability();
        }
        public void PropertiesTest()
        {
            var section = new SectionEditMock(1, "Test section");
            var vm = new ProcessSectionViewModel(section);
            var pf = Mock.Create<ProcessFieldViewModel>();
           
            Mock.Arrange(() => pf.Model).Returns(new FieldEdit() { IsBase = true });

            vm.SelectedField = pf;

            Assert.IsTrue(vm.ReadOnly);
        }
        public void SectionListTest()
        {
            var section = new SectionEditMock(1, "Test section");
            var vm = new ProcessSectionViewModel(section);

            var pfvm = Mock.Create<ProcessFieldsViewModel>();
            pfvm.SectionList.Add(new ProcessSectionViewModel(section));
            vm.TheProcessFieldsViewModel = pfvm;

            Mock.Arrange(() => pfvm.SectionList).Returns(new ObservableCollection<ProcessSectionViewModel>() { new ProcessSectionViewModel(section) });
            Assert.IsNotNull(vm.SectionList);
            Assert.IsTrue(vm.SectionList.Count == 1);
        }
        public void IsSecurityModeTest()
        {
            var section = new SectionEditMock(1, "Test section");
            var vm = new ProcessSectionViewModel(section);
            var pfvm = Mock.Create<ProcessFieldsViewModel>();
            vm.TheProcessFieldsViewModel = pfvm;

            Assert.IsFalse(vm.IsSecurityMode);

            var conf = Mock.Create<ProcessFieldConfigViewModel>();
            pfvm.SelectedFieldSecurityConfig = conf;
            pfvm.IsSecurityMode = true;
            Assert.IsTrue(vm.IsSecurityMode);
        }
        public void ChangeFieldCommandTest()
        {
            // Arrange.
            var field = new FieldEditMock("Text Field", "TextField", new FieldTypeInfo("Text", "String", true));
            var section = new SectionEditMock(1, "Test section");

            section.FieldList.Add(field);

            var vm = new ProcessSectionViewModel(section);

            var pfvm = Mock.Create<ProcessFieldsViewModel>();

            vm.TheProcessFieldsViewModel = pfvm;
            var ic = vm.ChangeFieldCommand;

            Assert.IsTrue(ic.CanExecute(null));
            Assert.IsFalse(vm.TheProcessFieldsViewModel.IsFieldsFocused);

            ic.Execute(null);

            Assert.IsTrue(vm.TheProcessFieldsViewModel.IsFieldsFocused);
        }
        public void MoveFieldDownCommandTest()
        {
            // Arrange.
            var field = new FieldEditMock("Text Field", "TextField", new FieldTypeInfo("Text", "String", true));
            var section = new SectionEditMock(1, "Test section");
            var pf = Mock.Create<ProcessFieldViewModel>();
            var pf2 = Mock.Create<ProcessFieldViewModel>();
            var pf3 = Mock.Create<ProcessFieldViewModel>();
            Mock.Arrange(() => pf.Model).Returns(new FieldEdit());
            Mock.Arrange(() => pf2.Model).Returns(new FieldEdit());
            Mock.Arrange(() => pf3.Model).Returns(new FieldEdit());
            section.FieldList.Add(field);

            var vm = new ProcessSectionViewModel(section);
            vm.FieldList.Add(pf);
            vm.FieldList.Add(pf3);
            vm.FieldList.Add(pf2);


            var pfvm = Mock.Create<ProcessFieldsViewModel>();
            Mock.Arrange(() => pfvm.Enabled).Returns(true);

            vm.TheProcessFieldsViewModel = pfvm;
            var ic = vm.MoveFieldDownCommand;

            var listboxM = new ListBoxItem { DataContext = pf };

            Assert.IsTrue(ic.CanExecute(listboxM));

            ic.Execute(listboxM);
            Assert.IsTrue(vm.FieldList[0].Model.Position == 0);
            Assert.IsTrue(vm.FieldList[1].Model.Position == 1);
        }
        public void RemoveFieldCommandTest()
        {
            // Arrange.
            var field = new FieldEditMock("Text Field", "TextField", new FieldTypeInfo("Text", "String", true));
            var section = new SectionEditMock(1, "Test section");

            section.FieldList.Add(field);

            var vm = new ProcessSectionViewModel(section);

            var pfvm = Mock.Create<ProcessFieldsViewModel>();
            Mock.Arrange(() => pfvm.Enabled).Returns(true);
            vm.TheProcessFieldsViewModel = pfvm;

            var pf = Mock.Create<ProcessFieldViewModel>();

            Mock.Arrange(() => pf.Model).Returns(new FieldEdit() { IsBase = true });

            vm.SelectedField = pf;

            var ic = vm.RemoveFieldCommand;

            Assert.IsFalse(ic.CanExecute(null));

            Mock.Arrange(() => pf.Model).Returns(new FieldEdit() { IsBase = false });
            vm.SelectedField = pf;

            Assert.IsTrue(ic.CanExecute(null));
        }
        public void AddNewFieldCommandTest()
        {
            // Arrange.
            var field = new FieldEditMock("Text Field", "TextField", new FieldTypeInfo("Text", "String", true));
            var section = new SectionEditMock(1, "Test section");

            section.FieldList.Add(field);

            var vm = new ProcessSectionViewModel(section);
            var pfvm = Mock.Create<ProcessFieldsViewModel>();

            Mock.Arrange(() => pfvm.Enabled).Returns(true);
            Mock.Arrange(() => pfvm.UnitOfWork).Returns(new ProcessEditRetrieverMock(new ProcessEdit(), new FieldTypes()));

            vm.TheProcessFieldsViewModel = pfvm;
            var factory = Mock.Create<IFieldViewModelFactory>();

            vm.FieldFactory = factory;

            var ic = vm.AddNewFieldCommand;

            Assert.IsTrue(ic.CanExecute(null));
        }
        public void OnSecurityModeChangedTest()
        {
            // Arrange.
            var section = new SectionEditMock(1, "Test section");
            var vm = new ProcessSectionViewModel(section);
            var pf = Mock.Create<ProcessFieldViewModel>();

            vm.FieldList.Add(pf);
            vm.OnSecurityModeChanged();
            Assert.IsTrue(vm.FieldList.Count == 1);
        }
        public void PopulateFieldsTest()
        {
            var section = new SectionEditMock(1, "Test section");

            var vm = new ProcessSectionViewModel(section);

            var factory = Mock.Create<IFieldViewModelFactory>();

            vm.FieldFactory = factory;
            vm.PopulateFields(section);
            Assert.IsTrue(vm.FieldList != null);
        }
        public void IsSectionVisibleTest()
        {
            var section = new SectionEditMock(1, "Test section");
            var section2 = new SectionEditMock(3, "Test section");
            var vm = new ProcessSectionViewModel(section);

            var pfvm = Mock.Create<ProcessFieldsViewModel>();
            pfvm.SectionList.Add(new ProcessSectionViewModel(section2));

            vm.TheProcessFieldsViewModel = pfvm;

            Assert.IsNotNull(vm.SectionList);
            Assert.IsNotNull(vm.SectionList.Count == 1);
        }