Пример #1
0
        public void TestToAccessibilityResourceNotModified()
        {
            ImmutableArray <AccessibilityFamilyResource> resource = ImmutableArray.Create <AccessibilityFamilyResource>();
            AccessibilityFamilyResource familyResource            = new AccessibilityFamilyResource(
                resourceCode: "ACC1",
                selections: ImmutableArray <AccessibilityFamilySelection> .Empty,
                disabled: false,
                defaultSelection: null);

            resource.Add(familyResource);

            AccessibilityFamily noPartialResources = new AccessibilityFamily(
                subjects: new ImmutableArray <string>(),
                grades: GradeLevels.NA,
                resources: resource);
            AccessibilityResource        inputResource  = Resources[1];
            List <AccessibilityResource> inputResources = new List <AccessibilityResource>
            {
                inputResource
            };

            var resultResources = AccessibilityResourceTranslation.MergeGlobalResources(noPartialResources, inputResources);

            Assert.Equal(inputResources.Count, resultResources.Resources.Count());

            AccessibilityResource outputResource = resultResources.Resources[0];

            Assert.Equal(inputResource.CurrentSelectionCode, outputResource.CurrentSelectionCode);
            Assert.Equal(inputResource.Description, outputResource.Description);
            Assert.Equal(inputResource.Disabled, outputResource.Disabled);
            Assert.Equal(inputResource.DefaultSelection, outputResource.DefaultSelection);
            Assert.Equal(inputResource.Order, outputResource.Order);
            Assert.Equal(inputResource.Selections.Count(), outputResource.Selections.Length);
        }
Пример #2
0
        /// <summary>
        /// Tests that a global accessibility resource copy is not modified
        /// from the original given a partial accessibility resource that
        /// contains all of the select elements
        /// </summary>
        [Fact] public void TestToAccessibilityResourceNoChanges()
        {
            AccessibilityResource       globalResource  = Resources[1];
            AccessibilityFamilyResource partialResource = new AccessibilityFamilyResource(
                resourceCode: "ACC1",
                selections: ImmutableArray.Create(
                    AccessibilityFamilySelection.Create(code: "ACC2_SEL1"),
                    AccessibilityFamilySelection.Create(code: "ACC2_SEL2")),
                disabled: false,
                defaultSelection: null);

            AccessibilityResource outputResource = AccessibilityResourceTranslation
                                                   .MergeGlobalResource(partialResource, globalResource);

            Assert.Equal(globalResource.CurrentSelectionCode, outputResource.CurrentSelectionCode);
            Assert.Equal(globalResource.Disabled, outputResource.Disabled);
            Assert.Equal(globalResource.Label, outputResource.Label);
            Assert.Equal(globalResource.DefaultSelection, outputResource.DefaultSelection);
            Assert.Equal(globalResource.Selections.Count(), outputResource.Selections.Count());
        }
Пример #3
0
        public void TestToAccessibilityDisabledAllSelections()
        {
            AccessibilityResource       globalResource  = Resources[1];
            AccessibilityFamilyResource partialResource = new AccessibilityFamilyResource(
                resourceCode: "ACC2",
                selections: ImmutableArray <AccessibilityFamilySelection> .Empty,
                disabled: false,
                defaultSelection: null);

            AccessibilityResource outputResource = AccessibilityResourceTranslation
                                                   .MergeGlobalResource(partialResource, globalResource);

            Assert.Equal(globalResource.CurrentSelectionCode, outputResource.CurrentSelectionCode);
            Assert.Equal(false, outputResource.Disabled);
            Assert.Equal(globalResource.Label, outputResource.Label);
            Assert.Equal(globalResource.Selections.Count(), outputResource.Selections.Count());
            foreach (var sel in outputResource.Selections)
            {
                Assert.Equal(true, sel.Disabled);
            }
        }
Пример #4
0
        public void TestToAccessibilityDisabledSomeSelections()
        {
            AccessibilityResource       globalResource  = Resources[1];
            AccessibilityFamilyResource partialResource = new AccessibilityFamilyResource(
                resourceCode: "TDS_CC",
                disabled: false,
                defaultSelection: null,
                selections: ImmutableArray.Create(AccessibilityFamilySelection.Create(code: "ACC2_SEL1")));

            AccessibilityResource outputResource = AccessibilityResourceTranslation
                                                   .MergeGlobalResource(partialResource, globalResource);

            Assert.Equal("ACC2_SEL1", outputResource.CurrentSelectionCode);
            Assert.Equal(false, outputResource.Disabled);
            Assert.Equal(globalResource.Label, outputResource.Label);

            // Check that default selection was also updated
            Assert.Equal("ACC2_SEL1", outputResource.DefaultSelection);

            Assert.Equal(globalResource.Selections.Length, outputResource.Selections.Length);
            Assert.Equal(false, outputResource.Selections[0].Disabled);
            Assert.Equal(true, outputResource.Selections[1].Disabled);
        }
Пример #5
0
        public static AccessibilityResource MergeGlobalResource(AccessibilityFamilyResource familyResource, AccessibilityResource globalResource)
        {
            if (familyResource == null)
            {
                throw new ArgumentNullException(nameof(familyResource));
            }
            else if (globalResource == null)
            {
                throw new ArgumentNullException(nameof(globalResource));
            }

            var newSelections = globalResource.Selections
                                .Select(sel => MergeSelection(sel, familyResource))
                                .ToImmutableArray();

            string defaultSelection = (!string.IsNullOrEmpty(familyResource.DefaultSelection)) ? familyResource.DefaultSelection : globalResource.DefaultSelection;

            var  matchingSelection = newSelections.FirstOrDefault(s => s.SelectionCode == defaultSelection);
            bool isDefaultInvalid  = matchingSelection == null || matchingSelection.Disabled;

            string newDefault = isDefaultInvalid
                ? newSelections.FirstOrDefault(s => !s.Disabled && !s.Hidden)?.SelectionCode ?? defaultSelection
                : defaultSelection;

            var newResource = new AccessibilityResource(
                resourceCode: globalResource.ResourceCode,
                currentSelectionCode: newDefault,
                order: globalResource.Order,
                defaultSelection: newDefault,
                selections: newSelections,
                label: globalResource.Label,
                description: globalResource.Description,
                disabled: familyResource.Disabled,
                resourceType: globalResource.ResourceTypeId);

            return(newResource);
        }
Пример #6
0
        public void TestToAccessibilityDisabledResource()
        {
            AccessibilityResource       globalResource  = Resources[1];
            AccessibilityFamilyResource partialResource = new AccessibilityFamilyResource(
                resourceCode: "ACC2",
                disabled: true,
                defaultSelection: null,
                selections: ImmutableArray.Create(
                    AccessibilityFamilySelection.Create(code: "ACC2_SEL1"),
                    AccessibilityFamilySelection.Create(code: "ACC2_SEL2")));

            AccessibilityResource outputResource = AccessibilityResourceTranslation.MergeGlobalResource(partialResource, globalResource);

            Assert.Equal(globalResource.CurrentSelectionCode, outputResource.CurrentSelectionCode);
            Assert.True(outputResource.Disabled);
            Assert.Equal(globalResource.Label, outputResource.Label);
            Assert.Equal(globalResource.DefaultSelection, outputResource.DefaultSelection);
            Assert.Equal(globalResource.Selections.Length, outputResource.Selections.Length);

            foreach (var sel in outputResource.Selections)
            {
                Assert.True(sel.Disabled);
            }
        }
Пример #7
0
        private static AccessibilitySelection MergeSelection(AccessibilitySelection sel, AccessibilityFamilyResource familyResource)
        {
            var    familySel   = familyResource.Selections.SingleOrDefault(fs => fs.Code == sel.SelectionCode);
            var    selDisabled = familyResource.Disabled || familySel == null || familySel.Hidden;
            string label       = (!string.IsNullOrEmpty(familySel?.Label)) ? familySel.Label : sel.Label;

            var newSelection = new AccessibilitySelection(
                code: sel.SelectionCode,
                label: label,
                order: sel.Order,
                disabled: selDisabled,
                hidden: familySel?.Hidden ?? sel.Hidden);

            return(newSelection);
        }
Пример #8
0
        public AccessibilityTranslationTests()
        {
            Resources = new List <AccessibilityResource>
            {
                AccessibilityResource.Create(
                    resourceCode: "ACC1",
                    order: 1,
                    disabled: false,
                    defaultSelection: "ACC1_SEL1",
                    currentSelectionCode:  "ACC1_SEL1",
                    label: "Accessibility 1",
                    description: "Accessibility Selection One",
                    selections: ImmutableArray.Create(
                        new AccessibilitySelection(
                            code: "ACC1_SEL1",
                            order: 1,
                            disabled: false,
                            label: "Selection 1",
                            hidden: false))),
                AccessibilityResource.Create(
                    resourceCode: "ACC2",
                    order: 2,
                    disabled: false,
                    defaultSelection: "ACC2_SEL2",
                    currentSelectionCode:  "ACC2_SEL2",
                    label: "Accessibility 2",
                    description: "Accessibility Selection Two",
                    selections: ImmutableArray.Create(
                        new AccessibilitySelection(
                            code: "ACC2_SEL1",
                            order: 1,
                            disabled: false,
                            label: "Selection 1",
                            hidden: false),
                        new AccessibilitySelection(
                            code: "ACC2_SEL2",
                            order: 2,
                            disabled: false,
                            label: "Selection 2",
                            hidden: false)))
            };

            PartialResources = new List <AccessibilityResource>
            {
                AccessibilityResource.Create(
                    resourceCode: "ACC1",
                    selections: ImmutableArray.Create(
                        AccessibilitySelection.Create(
                            code: "ACC1_SEL1",
                            label: "Selection 1"))),
                AccessibilityResource.Create(
                    resourceCode: "ACC2",
                    selections: ImmutableArray.Create(
                        AccessibilitySelection.Create(
                            code: "ACC1_SEL1",
                            label: "Selection 1"),
                        AccessibilitySelection.Create(
                            code: "ACC1_SEL2",
                            label: "Selection 2"))),
            };

            familyResource = new AccessibilityFamilyResource(
                resourceCode: "TDS_CC",
                selections: ImmutableArray <AccessibilityFamilySelection> .Empty,
                disabled: false,
                defaultSelection: null);

            globalResource = new AccessibilityResource(
                resourceCode: "TDS_CC",
                currentSelectionCode: "TDS_CC0",
                order: 5,
                defaultSelection: "TDS_CC0",
                selections: ImmutableArray.Create(
                    new AccessibilitySelection("TDS_CC0", "Black on White", 2, false, false),
                    new AccessibilitySelection("TDS_CCInvert", "Reverse Contrast", 2, false, false),
                    new AccessibilitySelection("TDS_CCMagenta", "Black on Rose", 2, false, false),
                    new AccessibilitySelection("TDS_CCMedGrayLtGray", "Medium Gray on Light Gray", 2, false, false)),
                label: "globalResource",
                description: "globalResource",
                disabled: false,
                resourceType: "globalResource Type");
        }