Ejemplo n.º 1
0
        public void TestInheritance(
            bool?enabledInSolution,
            bool enabledInProject,
            bool?enableOptionInProject,
            string testInput,
            ImplicitNullabilityAppliesTo expectedAppliesTo)
        {
            void ChangeSolutionSettings(IContextBoundSettingsStore settingsStore) =>
            settingsStore.SetValue((ImplicitNullabilitySettings x) => x.Enabled, enabledInSolution ?? TestRandom.NextBool());

            void ChangeProjectSettings(IContextBoundSettingsStore settingsStore)
            {
                settingsStore.SetValue((ImplicitNullabilitySettings x) => x.Enabled, enabledInProject);

                enableOptionInProject = enableOptionInProject ?? TestRandom.NextBool();
                settingsStore.SetValue((ImplicitNullabilitySettings x) => x.EnableInputParameters, enableOptionInProject);
                settingsStore.SetValue((ImplicitNullabilitySettings x) => x.EnableRefParameters, enableOptionInProject);
                settingsStore.SetValue((ImplicitNullabilitySettings x) => x.EnableOutParametersAndResult, enableOptionInProject);
                settingsStore.SetValue((ImplicitNullabilitySettings x) => x.EnableFields, enableOptionInProject);
                settingsStore.SetValue((ImplicitNullabilitySettings x) => x.EnableProperties, enableOptionInProject);
            }

            //

            var configuration = GetImplicitNullabilityConfigurationFor(testInput, ChangeSolutionSettings, ChangeProjectSettings);

            //

            Assert.That(configuration.AppliesTo, Is.EqualTo(expectedAppliesTo));
        }
Ejemplo n.º 2
0
        public void TestAssemblyMetadataAttributeConfiguration(string testInput, ImplicitNullabilityAppliesTo expected)
        {
            void ChangeSolutionSettings(IContextBoundSettingsStore settingsStore) =>
            settingsStore.EnableImplicitNullability(enableInputParameters: true, enableOutParametersAndResult: true, enableProperties: true);

            var configuration = GetImplicitNullabilityConfigurationFor(testInput, ChangeSolutionSettings);

            Assert.That(configuration.AppliesTo, Is.EqualTo(expected));
        }
Ejemplo n.º 3
0
 public ImplicitNullabilityConfiguration(
     ImplicitNullabilityAppliesTo appliesTo,
     ImplicitNullabilityFieldOptions fieldOptions,
     ImplicitNullabilityPropertyOptions propertyOptions,
     GeneratedCodeOptions generatedCode)
 {
     AppliesTo       = appliesTo;
     FieldOptions    = fieldOptions;
     PropertyOptions = propertyOptions;
     GeneratedCode   = generatedCode;
 }
Ejemplo n.º 4
0
 public bool HasAppliesTo(ImplicitNullabilityAppliesTo flag) => (AppliesTo & flag) > 0;