public void AvailableDisplayFieldsTest()
        {
            // Arrange
            var typeEditor = new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty);
            var crStepEdit = CrossRefRequiredStepEdit.NewStep(new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty), FieldEdit.New());
            var fieldVm = Mock.Create<Veyron.ProcessBuilder.ViewModels.Tabs.ProcessFieldViewModel>();
             var vm = new ProcessFieldCrossRefRequiredStepViewModel(crStepEdit, typeEditor, fieldVm);

            AddCurrentStateField(vm.AvailableFields);
            AddField(vm.AvailableFields);
            AddField(vm.AvailableFields);

            // Act
            var allFieldsExpectedCount = 3;
            var displayFieldsExpectedCount = 2;
            var allFieldsActualCount = vm.AvailableFields.Count;
            var displayFieldsActualCount = vm.AvailableDisplayFields.Count;
            var isCurrentStateInAllFields = vm.AvailableFields.Any(f => f.SystemName.Equals(Constants.CurrentStateColumnName));
            var isCurrentStateInDisplayFields = vm.AvailableDisplayFields.Any(f => f.SystemName.Equals(Constants.CurrentStateColumnName));

            // Assert
            Assert.AreEqual(allFieldsExpectedCount, allFieldsActualCount);
            Assert.AreEqual(displayFieldsExpectedCount, displayFieldsActualCount);
            Assert.IsTrue(isCurrentStateInAllFields);
            Assert.IsFalse(isCurrentStateInDisplayFields);
        }
        public void PropertiesTest()
        {
            var typeEditor = new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty);
            var crStepEdit = CrossRefRequiredStepEdit.NewStep(new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty), FieldEdit.New());
            var fieldVm = Mock.Create<Veyron.ProcessBuilder.ViewModels.Tabs.ProcessFieldViewModel>();
            var vm = new ProcessFieldCrossRefRequiredStepViewModel(crStepEdit, typeEditor, fieldVm);

            TestsHelper.TestPublicPropertiesGetSet(vm, x=>x.SelectedProcess, x=>x.SelectedField);
        }
        public void FileFieldsShouldNotBeInAvailableDisplayFields()
        {
            // Arrange
            var typeEditor = new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty);
            var crStepEdit = CrossRefRequiredStepEdit.NewStep(new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty), FieldEdit.New());
            var fieldVm = Mock.Create<Veyron.ProcessBuilder.ViewModels.Tabs.ProcessFieldViewModel>();
            var vm = new ProcessFieldCrossRefRequiredStepViewModel(crStepEdit, typeEditor, fieldVm);

            AddField(vm.AvailableFields, ColumnTypes.File);

            // Assert
            Assert.IsFalse(vm.AvailableDisplayFields.Any(f => f.Model.ColumnType == ColumnTypes.File));
        }
        private static ProcessFieldCrossRefRequiredStepViewModel CreateCrossRefRequiredStepVm()
        {
            var typeEditor = new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty);
            var crStepEdit = CrossRefRequiredStepEdit.NewStep(new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty), FieldEdit.New());
            var fieldVm = Mock.Create<Veyron.ProcessBuilder.ViewModels.Tabs.ProcessFieldViewModel>();
            var vm = new ProcessFieldCrossRefRequiredStepViewModel(crStepEdit, typeEditor, fieldVm)
                         {
                             DynamicManager = CreateDynamicTypeManager(),
                             Model = CreateProcessFieldsViewModel("p1"),
                             EventAggregator = Mock.Create<IEventAggregator>()
                         };

            return vm;
        }
        public void WhenParentFieldIsPublished_CannotChangeReferencedProcessAndAllowMultiple()
        {
            // Arrange.
            var field = Mock.Create<ProcessFieldViewModel>(Behavior.Loose);
            Mock.Arrange(() => field.IsPublished).Returns(false);
            Mock.Arrange(() => field.Enabled).Returns(true);
            var step = Mock.Create<CrossRefRequiredStepEdit>(Behavior.Loose);
            var stepInfo = Mock.Create<StepInfo>(Behavior.Loose);

            var stepViewModel = new ProcessFieldCrossRefRequiredStepViewModel(step, stepInfo, field);

            // Act / Assert.
            Assert.IsTrue(stepViewModel.CanChangeReferencedProcess);
            Assert.IsTrue(stepViewModel.CanChangeAllowMultiple);

            // Arrange.
            bool? canChangeReferencedProcess = null;
            bool? canChangeAllowMultiple = null;
            stepViewModel.PropertyChanged += (sender, args) =>
                {
                    if (args.PropertyName == TestsHelper.ExtractPropertyName(() => stepViewModel.CanChangeAllowMultiple))
                        canChangeAllowMultiple = stepViewModel.CanChangeAllowMultiple;

                    if (args.PropertyName == TestsHelper.ExtractPropertyName(() => stepViewModel.CanChangeReferencedProcess))
                        canChangeReferencedProcess = stepViewModel.CanChangeReferencedProcess;
                };

            // Act.
            Mock.Arrange(() => field.IsPublished).Returns(true);
            Mock.Raise(() => field.PropertyChanged += null, new PropertyChangedEventArgs(TestsHelper.ExtractPropertyName(() => field.IsPublished)));

            // Assert.
            Assert.AreEqual(false, canChangeReferencedProcess);
            Assert.AreEqual(false, canChangeAllowMultiple);
        }
        public void CanSelectFieldShouldIncludeImage()
        {
            // Arrange
            var typeEditor = new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty);
            var crStepEdit = CrossRefRequiredStepEdit.NewStep(new StepInfo(0, string.Empty, string.Empty, string.Empty, 1, true, string.Empty), FieldEdit.New());
            var fieldVm = Mock.Create<Veyron.ProcessBuilder.ViewModels.Tabs.ProcessFieldViewModel>();
            var vm = new ProcessFieldCrossRefRequiredStepViewModel(crStepEdit, typeEditor, fieldVm);

            var field = Mock.Create<FieldInfo>();
            Mock.Arrange(() => field.ColumnType).Returns(ColumnTypes.Image);

            // Assert
            Assert.IsTrue(vm.CanSelectField(field));
        }
コード例 #7
0
 /// <summary>
 /// Creates the field vm.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="parentVM">The parent vm.</param>
 /// <returns>CrossRefFieldViewModel.</returns>
 public CrossRefFieldViewModel CreateFieldVM(FieldInfo field, ProcessFieldCrossRefRequiredStepViewModel parentVM)
 {
     var fieldVM = new CrossRefFieldViewModel(field, parentVM);
     DeploymentService.Container.SatisfyImportsOnce(fieldVM);
     return fieldVM;
 }
コード例 #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CrossRefFieldViewModel"/> class.
        /// </summary>
        /// <param name="fieldInfo">The field information.</param>
        /// <param name="parentStep">The parent step.</param>
        public CrossRefFieldViewModel(FieldInfo fieldInfo, ProcessFieldCrossRefRequiredStepViewModel parentStep)
        {
            Model = fieldInfo;
            ParentStepViewModel = parentStep;

            if (Model != null && ParentStepViewModel != null)
            {
                _isSelected = ParentStepViewModel.Data.SelectedFields.Contains(FullSystemPath);
            }
        }