| File: AssemblyVersionHelperTests.cs | Web Access |
| Project: src\tests\Aspire.Hosting.Tests\Aspire.Hosting.Tests.csproj (Aspire.Hosting.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.Reflection; using System.Reflection.Emit; using Aspire.Shared; namespace Aspire.Hosting.Tests; [Trait("Partition", "4")] public class AssemblyVersionHelperTests { [Theory] [InlineData("8.0.0-preview.1", "8.0.0-preview.1")] [InlineData("8.0.0-preview.1+asdlkjfdijee", "8.0.0-preview.1")] [InlineData("8.0.0-preview.1+asdlkjfdijee+someothersuffix", "8.0.0-preview.1")] [InlineData("+asdlkjfdijee", "+asdlkjfdijee")] [InlineData("Plain old text", "Plain old text")] [InlineData("", "")] public void GetDisplayVersionStripsCommitHash(string informationalVersion, string expectedDisplayVersion) { var assembly = CreateAssembly(CreateAttribute<AssemblyInformationalVersionAttribute>(informationalVersion)); var actualDisplayVersion = AssemblyVersionHelper.GetDisplayVersion(assembly); Assert.Equal(expectedDisplayVersion, actualDisplayVersion); } [Fact] public void GetDisplayVersionUsesFileVersionWhenInformationalVersionIsMissing() { var assembly = CreateAssembly( CreateAttribute<AssemblyFileVersionAttribute>("42.42.42.42424"), CreateAttribute<AssemblyVersionAttribute>("8.0.0.0")); var actualDisplayVersion = AssemblyVersionHelper.GetDisplayVersion(assembly); Assert.Equal("42.42.42.42424", actualDisplayVersion); } [Fact] public void GetDisplayVersionUsesAssemblyVersionWhenInformationalAndFileVersionsAreMissing() { var assembly = CreateAssembly(CreateAttribute<AssemblyVersionAttribute>("8.0.0.0")); var actualDisplayVersion = AssemblyVersionHelper.GetDisplayVersion(assembly); Assert.Equal("8.0.0.0", actualDisplayVersion); } [Fact] public void GetDisplayVersionReturnsNullWhenVersionAttributesAreMissing() { var assembly = CreateAssembly(); var actualDisplayVersion = AssemblyVersionHelper.GetDisplayVersion(assembly); Assert.Null(actualDisplayVersion); } private static AssemblyBuilder CreateAssembly(params CustomAttributeBuilder[] attributes) { var assembly = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName($"TestAssembly{Guid.NewGuid():N}"), AssemblyBuilderAccess.Run); foreach (var attribute in attributes) { assembly.SetCustomAttribute(attribute); } return assembly; } private static CustomAttributeBuilder CreateAttribute<TAttribute>(string value) where TAttribute : Attribute { var constructor = typeof(TAttribute).GetConstructor([typeof(string)]); Assert.NotNull(constructor); return new CustomAttributeBuilder(constructor, [value]); } }