| File: LoggingMethodParameterTests.cs | Web Access |
| Project: src\test\Generators\Microsoft.Gen.Logging\Unit\Microsoft.Gen.Logging.Unit.Tests.csproj (Microsoft.Gen.Logging.Unit.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections.Generic; using Microsoft.Gen.Logging.Model; using Xunit; namespace Microsoft.Gen.Logging.Test; public class LoggingMethodParameterTests { [Fact] public void Fields_Should_BeInitialized() { var instance = new LoggingMethodParameter(); Assert.Empty(instance.ParameterName); Assert.Empty(instance.Type); } [Theory] [InlineData(false, false, true, false, false)] [InlineData(false, true, true, false, true)] [InlineData(true, false, true, true, false)] [InlineData(true, true, true, true, true)] public void ShouldGetLogMethodParameterInfoCorrectly( bool addPropertiesToLog, bool setLogPropertiesProvider, bool expectedParamIsInTemplate, bool expectedParamHasProperties, bool expectedParamHasPropsProvider) { const string PrivateDataAttributeType = "Microsoft.Extensions.Compliance.Testing.PrivateDataAtribute"; var lp = new LoggingMethodParameter { TagProvider = setLogPropertiesProvider ? new TagProvider(string.Empty, string.Empty) : null }; if (addPropertiesToLog) { lp.Properties.Add(new LoggingProperty { ClassificationAttributeTypes = new HashSet<string>(new[] { PrivateDataAttributeType }) }); } Assert.Equal(expectedParamIsInTemplate, lp.IsNormalParameter); Assert.Equal(expectedParamHasProperties, lp.HasProperties); Assert.Equal(expectedParamHasPropsProvider, lp.HasTagProvider); } [Fact] public void Misc() { var lp = new LoggingMethodParameter { ParameterName = "Foo", NeedsAtSign = false, }; Assert.Equal(lp.ParameterName, lp.ParameterNameWithAtIfNeeded); lp.NeedsAtSign = true; Assert.Equal("@" + lp.ParameterName, lp.ParameterNameWithAtIfNeeded); lp.Type = "Foo"; lp.IsReference = false; lp.IsNullable = true; Assert.Equal(lp.Type, lp.PotentiallyNullableType); lp.IsReference = false; lp.IsNullable = false; Assert.Equal(lp.Type, lp.PotentiallyNullableType); lp.IsReference = true; lp.IsNullable = false; Assert.Equal(lp.Type + "?", lp.PotentiallyNullableType); lp.IsReference = true; lp.IsNullable = true; Assert.Equal(lp.Type, lp.PotentiallyNullableType); } }