public void TestGetKPIScorecardConfigurationAccuracy()
        {
            // act
            KPIScorecardConfiguration result = instance.GetKPIScorecardConfiguration();

            // assert
            AssertResult(result);
        }
Ejemplo n.º 2
0
 public void SaveKPIScorecardConfiguration(KPIScorecardConfiguration configuration)
 {
     KPIScorecardConfigurationService.SaveKPIScorecardConfiguration(configuration);
 }
        public void TestSaveKPIScorecardConfigurationAccuracy()
        {
            // arrange
            KPIScorecardConfiguration configuration = CreateTestEntity <KPIScorecardConfiguration>(9, 3);
            KPIScorecardConfiguration existing      = instance.GetKPIScorecardConfiguration();

            // update AuditFinding config
            existing.AuditFinding.ImpactConfig[0].Id = 0;
            ReplaceLastTwoItems(existing.AuditFinding.ImpactConfig, configuration.AuditFinding.ImpactConfig);
            ReplaceLastTwoItems(existing.AuditFinding.ReportedToGORMConfig,
                                configuration.AuditFinding.ReportedToGORMConfig);
            ReplaceLastTwoItems(existing.AuditFinding.RootCauseConfig, configuration.AuditFinding.RootCauseConfig);
            ReplaceLastTwoItems(existing.AuditFinding.SourceConfig, configuration.AuditFinding.SourceConfig);
            ReplaceLastTwoItems(existing.AuditFinding.StatusConfig, configuration.AuditFinding.StatusConfig);

            // update BusinessUnit config
            ReplaceLastTwoItems(existing.BusinessUnit.BusinessContinuityPlanningConfig,
                                configuration.BusinessUnit.BusinessContinuityPlanningConfig);
            existing.BusinessUnit.BusinessUnits[0].Id = 0;
            ReplaceLastTwoItems(existing.BusinessUnit.BusinessUnits,
                                configuration.BusinessUnit.BusinessUnits);
            ReplaceLastTwoItems(existing.BusinessUnit.ConcentrationRiskConfig,
                                configuration.BusinessUnit.ConcentrationRiskConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.FinancialIndicatorsConfig,
                                configuration.BusinessUnit.FinancialIndicatorsConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.MonthConfig, configuration.BusinessUnit.MonthConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.OperationPerformanceConfig,
                                configuration.BusinessUnit.OperationPerformanceConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.SecurityConfig, configuration.BusinessUnit.SecurityConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.StatusConfig, configuration.BusinessUnit.StatusConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.VolumeTypeConfig, configuration.BusinessUnit.VolumeTypeConfig);
            ReplaceLastTwoItems(existing.BusinessUnit.YearConfig, configuration.BusinessUnit.YearConfig);

            // update OperationalIncident config
            existing.OperationalIncident.ImpactConfig[0].Id = 0;
            ReplaceLastTwoItems(existing.OperationalIncident.ImpactConfig,
                                configuration.OperationalIncident.ImpactConfig);
            ReplaceLastTwoItems(existing.OperationalIncident.ReportedToGORMConfig,
                                configuration.OperationalIncident.ReportedToGORMConfig);
            ReplaceLastTwoItems(existing.OperationalIncident.RootCauseConfig,
                                configuration.OperationalIncident.RootCauseConfig);
            ReplaceLastTwoItems(existing.OperationalIncident.SourceConfig,
                                configuration.OperationalIncident.SourceConfig);
            ReplaceLastTwoItems(existing.OperationalIncident.StatusConfig,
                                configuration.OperationalIncident.StatusConfig);

            // update PrivacyIncident config
            existing.PrivacyIncident.MigrationCodeConfig[0].Id = 0;
            ReplaceLastTwoItems(existing.PrivacyIncident.MigrationCodeConfig,
                                configuration.PrivacyIncident.MigrationCodeConfig);
            ReplaceLastTwoItems(existing.PrivacyIncident.RootCauseConfig,
                                configuration.PrivacyIncident.RootCauseConfig);
            ReplaceLastTwoItems(existing.PrivacyIncident.StatusConfig, configuration.PrivacyIncident.StatusConfig);
            ReplaceLastTwoItems(existing.PrivacyIncident.TypeConfig, configuration.PrivacyIncident.TypeConfig);

            // act
            instance.SaveKPIScorecardConfiguration(existing);

            // assert
            AssertValueEntitiesExist(existing.AuditFinding.ImpactConfig);
            AssertValueEntitiesExist(existing.AuditFinding.ReportedToGORMConfig);
            AssertValueEntitiesExist(existing.AuditFinding.RootCauseConfig);
            AssertValueEntitiesExist(existing.AuditFinding.SourceConfig);
            AssertValueEntitiesExist(existing.AuditFinding.StatusConfig);

            AssertValueEntitiesExist(existing.BusinessUnit.MonthConfig);
            AssertValueEntitiesExist(existing.BusinessUnit.StatusConfig);
            AssertValueEntitiesExist(existing.BusinessUnit.VolumeTypeConfig);
            AssertValueEntitiesExist(existing.BusinessUnit.YearConfig);
            AssertValueEntitiesExist(existing.BusinessUnit.BusinessUnits);
            AssertKPIScorecardItemEntitiesExist(existing.BusinessUnit.BusinessContinuityPlanningConfig);
            AssertKPIScorecardItemEntitiesExist(existing.BusinessUnit.ConcentrationRiskConfig);
            AssertKPIScorecardItemEntitiesExist(existing.BusinessUnit.FinancialIndicatorsConfig);
            AssertKPIScorecardItemEntitiesExist(existing.BusinessUnit.OperationPerformanceConfig);
            AssertKPIScorecardItemEntitiesExist(existing.BusinessUnit.SecurityConfig);

            AssertValueEntitiesExist(existing.OperationalIncident.ImpactConfig);
            AssertValueEntitiesExist(existing.OperationalIncident.ReportedToGORMConfig);
            AssertValueEntitiesExist(existing.OperationalIncident.RootCauseConfig);
            AssertValueEntitiesExist(existing.OperationalIncident.SourceConfig);
            AssertValueEntitiesExist(existing.OperationalIncident.StatusConfig);

            AssertValueEntitiesExist(existing.PrivacyIncident.MigrationCodeConfig);
            AssertValueEntitiesExist(existing.PrivacyIncident.RootCauseConfig);
            AssertValueEntitiesExist(existing.PrivacyIncident.StatusConfig);
            AssertValueEntitiesExist(existing.PrivacyIncident.TypeConfig);
        }
        /// <summary>
        /// Saves the KPI Scorecard configuration.
        /// </summary>
        ///
        /// <param name="configuration">The KPI Scorecard configuration.</param>
        ///
        /// <exception cref="ArgumentNullException">
        /// If the <paramref name="configuration"/> is <c>null</c>.
        /// </exception>
        /// <exception cref="PersistenceException">
        /// If error occurs while accessing the persistence.
        /// </exception>
        /// <exception cref="ServiceException">
        /// If any other errors occur while performing this operation.
        /// </exception>
        public void SaveKPIScorecardConfiguration(KPIScorecardConfiguration configuration)
        {
            ProcessWithDb(db =>
            {
                CommonHelper.ValidateArgumentNotNull(configuration, nameof(configuration));

                // AuditFinding configuration
                var auditFinding = configuration.AuditFinding;
                if (auditFinding != null)
                {
                    UpdateValueEntities(db, auditFinding.ImpactConfig);
                    UpdateValueEntities(db, auditFinding.ReportedToGORMConfig);
                    UpdateValueEntities(db, auditFinding.RootCauseConfig);
                    UpdateValueEntities(db, auditFinding.SourceConfig);
                    UpdateValueEntities(db, auditFinding.StatusConfig);
                }

                // BusinessUnit configuration
                var bu = configuration.BusinessUnit;
                if (bu != null)
                {
                    // value entities
                    UpdateValueEntities(db, bu.BusinessUnits);
                    UpdateValueEntities(db, bu.MonthConfig);
                    UpdateValueEntities(db, bu.StatusConfig);
                    UpdateValueEntities(db, bu.VolumeTypeConfig);
                    UpdateValueEntities(db, bu.YearConfig);

                    // KPIScorecardItem entities
                    UpdateScorecardItemEntities(db, bu.BusinessContinuityPlanningConfig,
                                                KPIScorecardItemType.BusinessContinuityPlanning);
                    UpdateScorecardItemEntities(db, bu.ConcentrationRiskConfig,
                                                KPIScorecardItemType.ConcentrationRiskScores);
                    UpdateScorecardItemEntities(db, bu.FinancialIndicatorsConfig,
                                                KPIScorecardItemType.FinancialIndicator);
                    UpdateScorecardItemEntities(db, bu.OperationPerformanceConfig,
                                                KPIScorecardItemType.OperationPerformance);
                    UpdateScorecardItemEntities(db, bu.SecurityConfig,
                                                KPIScorecardItemType.Security);
                }

                // OperationalIncident configuration
                var operationalIncident = configuration.OperationalIncident;
                if (operationalIncident != null)
                {
                    UpdateValueEntities(db, operationalIncident.ImpactConfig);
                    UpdateValueEntities(db, operationalIncident.ReportedToGORMConfig);
                    UpdateValueEntities(db, operationalIncident.RootCauseConfig);
                    UpdateValueEntities(db, operationalIncident.SourceConfig);
                    UpdateValueEntities(db, operationalIncident.StatusConfig);
                }

                // PrivacyIncident configuration
                var privacyIncident = configuration.PrivacyIncident;
                if (privacyIncident != null)
                {
                    UpdateValueEntities(db, privacyIncident.MigrationCodeConfig);
                    UpdateValueEntities(db, privacyIncident.RootCauseConfig);
                    UpdateValueEntities(db, privacyIncident.StatusConfig);
                    UpdateValueEntities(db, privacyIncident.TypeConfig);
                }
            },
                          "saving KPI Scorecard configuration",
                          parameters: configuration,
                          saveChanges: true);
        }