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)); }
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)); }
public ImplicitNullabilityConfiguration( ImplicitNullabilityAppliesTo appliesTo, ImplicitNullabilityFieldOptions fieldOptions, ImplicitNullabilityPropertyOptions propertyOptions, GeneratedCodeOptions generatedCode) { AppliesTo = appliesTo; FieldOptions = fieldOptions; PropertyOptions = propertyOptions; GeneratedCode = generatedCode; }
public bool HasAppliesTo(ImplicitNullabilityAppliesTo flag) => (AppliesTo & flag) > 0;