コード例 #1
0
        public void PopulateSecurityConfigurations()
        {
            var catalog = new TypeCatalog();

            var container = new CompositionContainer(catalog, false);

            var expressionServiceBase = Mock.Create<IExpressionServiceBase>(Behavior.Loose);
            container.ComposeExportedValue(expressionServiceBase);

            Ioc.InjectContainer(container);

            var vm = new ProcessCommandsViewModel();
            var process = new ProcessEditMock();
            var processEditExtensionsMock = Mock.Create<ProcessEditExtensions>(Behavior.Loose);
            process.ProcessEditExtensions = processEditExtensionsMock;

            vm.Model = process;

            process.ProcessOptionChoose = ProcessOption.VersionEnabled;

            Assert.AreEqual(1, vm.Model.CommandList.Count);

            var collectionUtilities = Mock.Create<ICollectionUtilities>(Behavior.Loose);

            Mock.Arrange(() => collectionUtilities.SortStatesInfoWithAll(Arg.IsAny<IEnumerable<StateEdit>>())).Returns<IEnumerable<StateEdit>>(
                list =>
                    {
                        var result = new ObservableCollection<StateInfo>(list.Select(s => new StateInfo { Name = s.Name, Guid = s.Guid }));

                        if (result.All(x => x.Guid != Constants.AllStatesGuid)) result.Insert(0, new StateInfo { Guid = Constants.AllStatesGuid, Name = Constants.AllStatesName });

                        return result;
                    });
            
            vm.CollectionUtilities = collectionUtilities;

            vm.Roles =
                new ObservableCollection<RoleInfo>(
                    new[] { new RoleInfo { Id = Constants.AllRolesId, Name = Constants.AllRolesName }, new RoleInfo { Id = 1, Name = "Role 1" }, new RoleInfo { Id = 2, Name = "Role 2" } });

            vm.BusinessUnits =
                new ObservableCollection<BusinessUnitInfo>(
                    new[]
                        {
                            new BusinessUnitInfo { Id = Constants.AllBusinessUnitsId, Name = Constants.AllBusinessUnitsName }, new BusinessUnitInfo { Id = 1, Name = "BU 1" },
                            new BusinessUnitInfo { Id = 2, Name = "BU 2" }
                        });

            vm.SelectedCommand = vm.Model.CommandList.First();
            vm.SecurityConfigurationList.Add(ProcessCommandSecurityConfigurationEdit.NewProcessCommandSecurityConfigurationEdit());
            vm.OnRefreshed();

            Assert.AreEqual(1, vm.Model.CommandList[0].SecurityConfigurationList.Count);

            //default description
            Assert.AreEqual(1, vm.Model.CommandList[0].SecurityConfigurationList.Count);
            var configuration = vm.Model.CommandList[0].SecurityConfigurationList[0];
            Assert.IsTrue(configuration.BusinessUnitName.Equals(Constants.AllBusinessUnitsName) && configuration.RoleName.Equals(Constants.AllRolesName));

            configuration = vm.Model.CommandList[0].SecurityConfigurationList[0];
            vm.SelectedSecurityConfiguration = configuration;
            vm.SelectedRoleId = 1;
            vm.SelectedBusinessUnitId = 2;

            //first configuration
            Assert.AreEqual(1, vm.Model.CommandList[0].SecurityConfigurationList.Count);
            Assert.IsTrue(vm.RoleName.Equals("Role 1") && vm.BusinessUnitName.Equals("BU 2"));

            vm.SecurityConfigurationList.Add(ProcessCommandSecurityConfigurationEdit.NewProcessCommandSecurityConfigurationEdit());

            configuration = vm.Model.CommandList[0].SecurityConfigurationList[1];
            vm.SelectedSecurityConfiguration = configuration;
            vm.SelectedRoleId = 2;
            vm.SelectedBusinessUnitId = 1;

            //second configuration
            Assert.AreEqual(2, vm.Model.CommandList[0].SecurityConfigurationList.Count);
            Assert.IsTrue(vm.RoleName.Equals("Role 2") && vm.BusinessUnitName.Equals("BU 1"));

            Ioc.InjectContainer(null);
        }
コード例 #2
0
        public void FieldListChangedEventExecute()
        {
            var catalog = new TypeCatalog();

            var container = new CompositionContainer(catalog, false);

            var expressionServiceBase = Mock.Create<IExpressionServiceBase>(Behavior.Loose);
            container.ComposeExportedValue(expressionServiceBase);

            Ioc.InjectContainer(container);

            // arrange
            var vm = new ProcessCommandsViewModel { Model = new ProcessEdit() };

            var responsiblePersonField = new FieldInfo { Name = "Responsible Person", SystemName = "ResponsiblePerson_f" };

            var collectionUtilities = Mock.Create<ICollectionUtilities>();
            Mock.Arrange(() => collectionUtilities.SortPersonFieldDefsWithAll(Arg.IsAny<List<FieldEdit>>())).Returns(new ObservableCollection<FieldInfo> { responsiblePersonField });

            vm.CollectionUtilities = collectionUtilities;

            // act
            vm.HandleEvent(new FieldListChangedEvent(FieldOperation.Added, null));

            // assert
            Assert.AreEqual(responsiblePersonField, vm.PersonFieldList.First());

            Ioc.InjectContainer(null);
        }
コード例 #3
0
        public void AfterBaseBusinessUnitAndBaseRoleChanged_SecurityConfigurationNamesChanges()
        {
            var catalog = new TypeCatalog();

            var container = new CompositionContainer(catalog, false);

            var expressionServiceBase = Mock.Create<IExpressionServiceBase>(Behavior.Loose);
            container.ComposeExportedValue(expressionServiceBase);

            Ioc.InjectContainer(container);

            #region Arrange

            const string BusinessUnitName = "Unit1";
            const string RoleName = "Role1";
            const int RoleId = 1;
            const int BusinessUnitId = 1;

            var process = new ProcessEditMock();
            var processEditExtensionsMock = Mock.Create<ProcessEditExtensions>();
            process.ProcessEditExtensions = processEditExtensionsMock;

            var roleMock = Mock.Create<IRoleInfo>();
            Mock.Arrange(() => roleMock.Id).Returns(RoleId);
            Mock.Arrange(() => roleMock.Name).Returns(RoleName);
            var businessUnitMock = Mock.Create<IBusinessUnitInfo>();
            Mock.Arrange(() => businessUnitMock.Id).Returns(BusinessUnitId);
            Mock.Arrange(() => businessUnitMock.Name).Returns(BusinessUnitName);

            var collectionUtilities = Mock.Create<ICollectionUtilities>();

            Mock.Arrange(() => collectionUtilities.SortStatesInfoWithAll(Arg.IsAny<IEnumerable<StateEdit>>())).Returns<IEnumerable<StateEdit>>(
                list =>
                    {
                        var result = new ObservableCollection<StateInfo>();

                        result.Insert(0, new StateInfo { Guid = Constants.AllStatesGuid, Name = Constants.AllStatesName });

                        return result;
                    });

            Mock.Arrange(() => collectionUtilities.SortBusinessUnitsWithAll(Arg.IsAny<IEnumerable<IBusinessUnitInfo>>())).Returns<IEnumerable<IBusinessUnitInfo>>(
                list =>
                    {
                        var result = new ObservableCollection<BusinessUnitInfo>(list.Select(b => new BusinessUnitInfo { Name = b.Name, Id = b.Id }));
                        return result;
                    });

            Mock.Arrange(() => collectionUtilities.SortRolesWithAll(Arg.IsAny<IEnumerable<IRoleInfo>>())).Returns<IEnumerable<IRoleInfo>>(
                list =>
                    {
                        var result = new ObservableCollection<RoleInfo>(list.Select(r => new RoleInfo { Name = r.Name, Id = r.Id }));
                        return result;
                    });

            var vm = new ProcessCommandsViewModel();
            vm.Model = process;
            vm.CollectionUtilities = collectionUtilities;

            var organizationInfoMock = Mock.Create<IOrganizationInfo>();
            Mock.Arrange(() => organizationInfoMock.Roles).Returns(new List<IRoleInfo>() { roleMock });
            Mock.Arrange(() => organizationInfoMock.BusinessUnits).Returns(new List<IBusinessUnitInfo> { businessUnitMock });
            vm.OrganizationInfo = organizationInfoMock;

            vm.Model.CommandList.Add(ProcessCommandEdit.NewProcessCommandEdit());
            vm.Model.CommandList[0].SecurityConfigurationList.Add(RoleId, BusinessUnitId, Constants.AllStatesGuid, null, null, null, Constants.AllPersonFieldsName, null);

            #endregion Arrange

            //Act
            vm.OnRefreshed();
            //Assert
            Assert.AreEqual(vm.Model.CommandList[0].SecurityConfigurationList[0].BusinessUnitName, BusinessUnitName);
            Assert.AreEqual(vm.Model.CommandList[0].SecurityConfigurationList[0].RoleName, RoleName);

            //Arrange
            Mock.Arrange(() => collectionUtilities.SortBusinessUnitsWithAll(Arg.IsAny<IEnumerable<IBusinessUnitInfo>>())).Returns<IEnumerable<IBusinessUnitInfo>>(list => new ObservableCollection<BusinessUnitInfo>());
            Mock.Arrange(() => collectionUtilities.SortRolesWithAll(Arg.IsAny<IEnumerable<IRoleInfo>>())).Returns<IEnumerable<IRoleInfo>>(list => new ObservableCollection<RoleInfo>());

            //Act: role and businessUnit are removed
            vm.OnRefreshed();
            //Assert
            Assert.AreEqual(vm.Model.CommandList[0].SecurityConfigurationList[0].BusinessUnitName, Constants.Unknown);
            Assert.AreEqual(vm.Model.CommandList[0].SecurityConfigurationList[0].RoleName, Constants.Unknown);

            Ioc.InjectContainer(null);
        }
コード例 #4
0
        public void OnImportsSatisfied_MustSubscribe_FieldListChangedEvent()
        {
            // arrange
            var vm = new ProcessCommandsViewModel();

            var eventAggregator = Mock.Create<IEventAggregator>();

            vm.EventAggregator = eventAggregator;

            // act
            vm.OnImportsSatisfied();

            // assert
            Mock.Assert(() => eventAggregator.Subscribe(Arg.IsAny<IEventSink<FieldListChangedEvent>>()), Occurs.Once());
        }
コード例 #5
0
        public void WhenProcessStatesIsChanged_ProcessCommandTabStatesUpdated()
        {
            var catalog = new TypeCatalog();

            var container = new CompositionContainer(catalog, false);

            var expressionServiceBase = Mock.Create<IExpressionServiceBase>(Behavior.Loose);
            container.ComposeExportedValue(expressionServiceBase);

            Ioc.InjectContainer(container);

            var vm = new ProcessCommandsViewModel();
            var process = new ProcessEditMock();
            var processEditExtensionsMock = Mock.Create<ProcessEditExtensions>();
            process.ProcessEditExtensions = processEditExtensionsMock;

            vm.Model = process;

            var collectionUtilities = Mock.Create<ICollectionUtilities>();

            Mock.Arrange(() => collectionUtilities.SortStatesInfoWithAll(Arg.IsAny<IEnumerable<StateEdit>>())).Returns<IEnumerable<StateEdit>>(
                list =>
                    {
                        var result = new ObservableCollection<StateInfo>(list.Select(s => new StateInfo { Name = s.Name, Guid = s.Guid }));

                        if (result.All(x => x.Guid != Constants.AllStatesGuid)) result.Insert(0, new StateInfo { Guid = Constants.AllStatesGuid, Name = Constants.AllStatesName });

                        return result;
                    });

            vm.CollectionUtilities = collectionUtilities;

            process.ProcessOptionChoose = ProcessOption.VersionEnabled;

            Assert.AreEqual(1, vm.Model.CommandList.Count);

            var statesBeforechanges = vm.StateInfoList.Count;

            ((BindingList<StateEdit>)process.StateList).AddNew();

            Assert.AreEqual(statesBeforechanges + 1, vm.StateInfoList.Count);

            Ioc.InjectContainer(null);
        }