public void GetResidualRisk_GivenCase_ExpectedResult(TestCase testCase, int expectedResidualRisk)
        {
            CompleteElement element = CompleteElementBuilder.CreateCase(testCase);

            double result = element.GetResidualRisk();

            R0(result).Should().Be(expectedResidualRisk);
        }
        public void GetManagedRiskBIAAndCOMPL_GivenCase_ExpectedResult(
            TestCase testCase, int expectedManagedRiskBIA, int exptectedManagedRiskCOMPL)
        {
            CompleteElement element = CompleteElementBuilder.CreateCase(testCase);

            double managedRiskBIA   = element.GetManagedRiskBIA();
            double managedRiskCOMPL = element.GetManagedRiskCOMPL();

            R0(managedRiskBIA).Should().Be(expectedManagedRiskBIA);
            R0(managedRiskCOMPL).Should().Be(exptectedManagedRiskCOMPL);
        }
        public void GetVEFDistrib_GivenCase_ExpectedResult(TestCase testCase, double vef)
        {
            CompleteElement element = CompleteElementBuilder.CreateCase(testCase);

            element.SetVEF(vef);  // Setting VEF automatically force risk calculation of PDS

            Dictionary <long, double[]> distribution = element.GetPotentialRiskDistributionFactors();

            ExtractVEF(distribution).Should().Equal(new Dictionary <long, double>
            {
                { 101, 20270.27 },
                { 102, 18918.92 },
                { 103, 2702.70 },
                { 104, 2702.70 },
                { 105, 5405.41 },
            });
        }
Example #4
0
        public static IElement CreateCase(TestCase scenario)
        {
            IElement           element    = null;
            PerimetersAnalysis perimeters = CreatePerimetersAnalysis();
            RiskPlanningVCI    vci        = new RiskPlanningVCI(450, 300); // vci=750
            RiskPlanningPDS    pds        = CreateRPpds();

            switch (scenario)
            {
            case TestCase.NotClassifiedAbsentElementWithMissingPerimeterAnalysis:
                element = new NotClassifiedElement(PerimeterType.InformationTechnology, perimeters);
                break;

            case TestCase.NotClassifiedAbsentElementWithCompletePerimeterAnalysis:
                element = new NotClassifiedElement(PerimeterType.AdministrationFinanceAndControl, perimeters);
                break;

            case TestCase.ClassifiedAbsentElementWithMissingPerimeterAnalysis:
                element = new AbsentElement(PerimeterType.InformationTechnology, perimeters);
                break;

            case TestCase.ClassifiedAbsentElementWithCompletePerimeterAnalysis:
                element = new AbsentElement(PerimeterType.AdministrationFinanceAndControl, perimeters);

                break;

            case TestCase.IncompleteElementWithMissingPerimeterAnalysis:
                element = new IncompleteElement(PerimeterType.InformationTechnology, perimeters, vci);
                break;

            case TestCase.IncompleteElementWithCompletePerimeterAnalysis:
                element = new IncompleteElement(PerimeterType.AdministrationFinanceAndControl, perimeters, vci);
                break;

            case TestCase.CompleteElementWithMissingPerimeterAnalysis:
                element = new CompleteElement(PerimeterType.InformationTechnology, perimeters, vci, pds);
                break;

            case TestCase.CompleteElementWithCompletePerimeterAnalysis:
                element = new CompleteElement(PerimeterType.AdministrationFinanceAndControl, perimeters, vci, pds);
                break;
            }
            return(element);
        }