Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Consolidate AssemblyTests, AssemblyNameTests, MethodInfoTests fixtures within System.Reflection location #33101

Merged
merged 2 commits into from
Nov 2, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions src/System.Reflection/tests/AssemblyNameTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,122 @@ public void CultureName_Set_Invalid_ThrowsCultureNotFoundException()
Assert.Throws<CultureNotFoundException>(() => assemblyName.CultureName = "NotAValidCulture");
}

[Fact]
public void Verify_CultureName()
{
AssemblyName an = new AssemblyName("MyAssemblyName");
Assert.Null(an.CultureName);
}

[Fact]
public void Verify_CodeBase()
{
AssemblyName n = new AssemblyName("MyAssemblyName");
Assert.Null(n.CodeBase);

n.CodeBase = System.IO.Directory.GetCurrentDirectory();
Assert.NotNull(n.CodeBase);
}

[Fact]
[SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "AssemblyName.CodeBase and EscapedCodeBase not supported on UapAot")]
public static void Verify_EscapedCodeBase()
{
AssemblyName n = new AssemblyName("MyAssemblyName");
Assert.Null(n.EscapedCodeBase);

n.CodeBase = @"file:///d:/temp/MyAssemblyName1.dll";
Assert.NotNull(n.EscapedCodeBase);
Assert.Equal(n.EscapedCodeBase, n.CodeBase);

n.CodeBase = @"file:///c:/program files/MyAssemblyName.dll";
Assert.Equal(n.EscapedCodeBase, Uri.EscapeUriString(n.CodeBase));
}

[Fact]
public static void Verify_HashAlgorithm()
{
AssemblyName an = new AssemblyName("MyAssemblyName");
Assert.Equal(System.Configuration.Assemblies.AssemblyHashAlgorithm.None, an.HashAlgorithm);

an.HashAlgorithm = System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA1;
Assert.Equal(System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA1, an.HashAlgorithm);
}

[Fact]
public static void Verify_VersionCompatibility()
{
AssemblyName an = new AssemblyName("MyAssemblyName");
Assert.Equal(System.Configuration.Assemblies.AssemblyVersionCompatibility.SameMachine, an.VersionCompatibility);

an.VersionCompatibility = System.Configuration.Assemblies.AssemblyVersionCompatibility.SameProcess;
Assert.Equal(System.Configuration.Assemblies.AssemblyVersionCompatibility.SameProcess, an.VersionCompatibility);
}

[Fact]
public static void Clone()
{
AssemblyName an1 = new AssemblyName("MyAssemblyName");
an1.Flags = AssemblyNameFlags.PublicKey | AssemblyNameFlags.EnableJITcompileOptimizer;

object an2 = an1.Clone();
Assert.Equal(an1.FullName, ((AssemblyName)an2).FullName);
Assert.Equal(AssemblyNameFlags.PublicKey | AssemblyNameFlags.EnableJITcompileOptimizer, ((AssemblyName)an2).Flags);
}

[Fact]
[SkipOnTargetFramework(TargetFrameworkMonikers.Uap, "AssemblyName.GetAssemblyName() not supported on UapAot")]
public static void GetAssemblyName()
{
AssertExtensions.Throws<ArgumentNullException>("assemblyFile", () => AssemblyName.GetAssemblyName(null));
AssertExtensions.Throws<ArgumentException>("path", null, () => AssemblyName.GetAssemblyName(string.Empty));
Assert.Throws<System.IO.FileNotFoundException>(() => AssemblyName.GetAssemblyName("IDontExist"));

using (var tempFile = new TempFile(Path.GetTempFileName(), 0)) // Zero-size file
{
Assert.Throws<System.BadImageFormatException>(() => AssemblyName.GetAssemblyName(tempFile.Path));
}

using (var tempFile = new TempFile(Path.GetTempFileName(), 42))
{
Assert.Throws<System.BadImageFormatException>(() => AssemblyName.GetAssemblyName(tempFile.Path));
}

Assembly a = typeof(AssemblyNameTests).Assembly;
Assert.Equal(new AssemblyName(a.FullName).ToString(), AssemblyName.GetAssemblyName(a.Location).ToString());
}

[Fact]
[SkipOnTargetFramework(TargetFrameworkMonikers.Uap, "AssemblyName.GetAssemblyName() not supported on UapAot")]
public static void GetAssemblyName_LockedFile()
{
using (var tempFile = new TempFile(Path.GetTempFileName(), 100))
using (var fileStream = new FileStream(tempFile.Path, FileMode.Append, FileAccess.Write, FileShare.None))
{
if (PlatformDetection.IsWindows) // File locking is Windows specific.
{
Assert.Throws<System.IO.FileLoadException>(() => AssemblyName.GetAssemblyName(tempFile.Path));
}
else
{
Assert.Throws<System.BadImageFormatException>(() => AssemblyName.GetAssemblyName(tempFile.Path));
}
}
}

public static IEnumerable<object[]> ReferenceMatchesDefinition_TestData()
{
yield return new object[] { new AssemblyName(typeof(AssemblyNameTests).Assembly.FullName), new AssemblyName(typeof(AssemblyNameTests).Assembly.FullName), true };
yield return new object[] { new AssemblyName(typeof(AssemblyNameTests).Assembly.FullName), new AssemblyName("System.Runtime"), false };
}

[Theory]
[MemberData(nameof(ReferenceMatchesDefinition_TestData))]
public static void ReferenceMatchesDefinition(AssemblyName a1, AssemblyName a2, bool expected)
{
Assert.Equal(expected, AssemblyName.ReferenceMatchesDefinition(a1, a2));
}

[Theory]
[InlineData(AssemblyNameFlags.None)]
[InlineData(AssemblyNameFlags.PublicKey)]
Expand Down
Loading