-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathRegisterCustomFunctionTests.cs
More file actions
94 lines (88 loc) · 3.62 KB
/
RegisterCustomFunctionTests.cs
File metadata and controls
94 lines (88 loc) · 3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using ScubaDiver.API.Interactions;
using ScubaDiver.API.Interactions.Dumps;
using System.Collections.Generic;
namespace ScubaDiver.API.Tests
{
[TestFixture]
public class RegisterCustomFunctionTests
{
[Test]
public void RegisterCustomFunctionRequest_ValidData_SetsPropertiesCorrectly()
{
// Arrange
var request = new RegisterCustomFunctionRequest
{
ParentTypeFullName = "MyNamespace::MyClass",
ParentAssembly = "MyModule.dll",
FunctionName = "MyCustomFunction",
ModuleName = "MyModule.dll",
Offset = 0x1234,
ReturnTypeFullName = "int",
ReturnTypeAssembly = "System.Private.CoreLib",
Parameters = new List<RegisterCustomFunctionRequest.ParameterTypeInfo>
{
new RegisterCustomFunctionRequest.ParameterTypeInfo
{
Name = "param1",
TypeFullName = "int",
Assembly = "System.Private.CoreLib"
},
new RegisterCustomFunctionRequest.ParameterTypeInfo
{
Name = "param2",
TypeFullName = "float",
Assembly = "System.Private.CoreLib"
}
}
};
// Assert
Assert.That(request.ParentTypeFullName, Is.EqualTo("MyNamespace::MyClass"));
Assert.That(request.ParentAssembly, Is.EqualTo("MyModule.dll"));
Assert.That(request.FunctionName, Is.EqualTo("MyCustomFunction"));
Assert.That(request.ModuleName, Is.EqualTo("MyModule.dll"));
Assert.That(request.Offset, Is.EqualTo(0x1234));
Assert.That(request.ReturnTypeFullName, Is.EqualTo("int"));
Assert.That(request.Parameters.Count, Is.EqualTo(2));
Assert.That(request.Parameters[0].Name, Is.EqualTo("param1"));
Assert.That(request.Parameters[0].TypeFullName, Is.EqualTo("int"));
Assert.That(request.Parameters[1].Name, Is.EqualTo("param2"));
Assert.That(request.Parameters[1].TypeFullName, Is.EqualTo("float"));
}
[Test]
public void RegisterCustomFunctionResponse_Success_SetsPropertiesCorrectly()
{
// Arrange
var methodDump = new TypeDump.TypeMethod
{
Name = "TestMethod",
ReturnTypeFullName = "int"
};
var response = new RegisterCustomFunctionResponse
{
Success = true,
ErrorMessage = null,
RegisteredMethod = methodDump
};
// Assert
Assert.That(response.Success, Is.True);
Assert.That(response.ErrorMessage, Is.Null);
Assert.That(response.RegisteredMethod, Is.Not.Null);
Assert.That(response.RegisteredMethod.Name, Is.EqualTo("TestMethod"));
}
[Test]
public void RegisterCustomFunctionResponse_Failure_SetsPropertiesCorrectly()
{
// Arrange
var response = new RegisterCustomFunctionResponse
{
Success = false,
ErrorMessage = "Failed to register custom function",
RegisteredMethod = null
};
// Assert
Assert.That(response.Success, Is.False);
Assert.That(response.ErrorMessage, Is.EqualTo("Failed to register custom function"));
Assert.That(response.RegisteredMethod, Is.Null);
}
}
}