forked from Pathoschild/SMAPI
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApiConsumer.cs
More file actions
46 lines (42 loc) · 1.56 KB
/
Copy pathApiConsumer.cs
File metadata and controls
46 lines (42 loc) · 1.56 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
using System;
using SMAPI.Tests.ModApiConsumer.Interfaces;
namespace SMAPI.Tests.ModApiConsumer
{
/// <summary>A simulated API consumer.</summary>
public class ApiConsumer
{
/*********
** Public methods
*********/
/// <summary>Call the event field on the given API.</summary>
/// <param name="api">The API to call.</param>
/// <param name="getValues">Get the number of times the event was called and the last value received.</param>
public void UseEventField(ISimpleApi api, out Func<(int timesCalled, int actualValue)> getValues)
{
// act
int calls = 0;
int lastValue = -1;
api.OnEventRaised += (_, value) =>
{
calls++;
lastValue = value;
};
getValues = () => (timesCalled: calls, actualValue: lastValue);
}
/// <summary>Call the event property on the given API.</summary>
/// <param name="api">The API to call.</param>
/// <param name="getValues">Get the number of times the event was called and the last value received.</param>
public void UseEventProperty(ISimpleApi api, out Func<(int timesCalled, int actualValue)> getValues)
{
// act
int calls = 0;
int lastValue = -1;
api.OnEventRaisedProperty += (_, value) =>
{
calls++;
lastValue = value;
};
getValues = () => (timesCalled: calls, actualValue: lastValue);
}
}
}