-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Yannis Standaert
committed
Jan 21, 2025
1 parent
dd3d650
commit b7bb414
Showing
2 changed files
with
107 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
using Aikido.Zen.Core.Helpers; | ||
using NUnit.Framework; | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Reflection; | ||
|
||
namespace Aikido.Zen.Test | ||
{ | ||
/// <summary> | ||
/// Tests for the ReflectionHelper class. | ||
/// </summary> | ||
public class ReflectionHelperTests | ||
{ | ||
[SetUp] | ||
public void SetUp() | ||
{ | ||
// Clear the cache before each test to ensure a clean state | ||
ReflectionHelper.ClearCache(); | ||
} | ||
|
||
[Test] | ||
public void GetMethodFromAssembly_ValidMethod_ReturnsMethodInfo() | ||
{ | ||
// Arrange | ||
var assemblyName = "System.Private.CoreLib"; | ||
var typeName = "System.String"; | ||
var methodName = "Contains"; | ||
var parameterTypeNames = new[] { "System.String" }; | ||
|
||
// Act | ||
var methodInfo = ReflectionHelper.GetMethodFromAssembly(assemblyName, typeName, methodName, parameterTypeNames); | ||
|
||
// Assert | ||
Assert.That(methodInfo, Is.Not.Null); | ||
Assert.That(methodInfo.Name, Is.EqualTo(methodName)); | ||
} | ||
|
||
[Test] | ||
public void GetMethodFromAssembly_InvalidAssembly_ReturnsNull() | ||
{ | ||
// Arrange | ||
var assemblyName = "NonExistentAssembly"; | ||
var typeName = "System.String"; | ||
var methodName = "Contains"; | ||
var parameterTypeNames = new[] { "System.String" }; | ||
|
||
// Act | ||
var methodInfo = ReflectionHelper.GetMethodFromAssembly(assemblyName, typeName, methodName, parameterTypeNames); | ||
|
||
// Assert | ||
Assert.That(methodInfo, Is.Null); | ||
} | ||
|
||
[Test] | ||
public void GetMethodFromAssembly_InvalidType_ReturnsNull() | ||
{ | ||
// Arrange | ||
var assemblyName = "System.Private.CoreLib"; | ||
var typeName = "NonExistentType"; | ||
var methodName = "Contains"; | ||
var parameterTypeNames = new[] { "System.String" }; | ||
|
||
// Act | ||
var methodInfo = ReflectionHelper.GetMethodFromAssembly(assemblyName, typeName, methodName, parameterTypeNames); | ||
|
||
// Assert | ||
Assert.That(methodInfo, Is.Null); | ||
} | ||
|
||
[Test] | ||
public void GetMethodFromAssembly_InvalidMethod_ReturnsNull() | ||
{ | ||
// Arrange | ||
var assemblyName = "System.Private.CoreLib"; | ||
var typeName = "System.String"; | ||
var methodName = "NonExistentMethod"; | ||
var parameterTypeNames = new[] { "System.String" }; | ||
|
||
// Act | ||
var methodInfo = ReflectionHelper.GetMethodFromAssembly(assemblyName, typeName, methodName, parameterTypeNames); | ||
|
||
// Assert | ||
Assert.That(methodInfo, Is.Null); | ||
} | ||
|
||
[Test] | ||
public void ClearCache_ClearsAllCachedData() | ||
{ | ||
// Arrange | ||
var assemblyName = "System.Private.CoreLib"; | ||
var typeName = "System.String"; | ||
var methodName = "Contains"; | ||
var parameterTypeNames = new[] { "System.String" }; | ||
|
||
// Act | ||
var methodInfo = ReflectionHelper.GetMethodFromAssembly(assemblyName, typeName, methodName, parameterTypeNames); | ||
ReflectionHelper.ClearCache(); | ||
var methodInfoAfterClear = ReflectionHelper.GetMethodFromAssembly(assemblyName, typeName, methodName, parameterTypeNames); | ||
|
||
// Assert | ||
Assert.That(methodInfo, Is.Not.Null); | ||
Assert.That(methodInfoAfterClear, Is.Not.Null); | ||
Assert.That(methodInfo, Is.EqualTo(methodInfoAfterClear)); | ||
} | ||
} | ||
} |