#nullable disable
using System;
using SMAPI.Tests.ModApiConsumer.Interfaces;
namespace SMAPI.Tests.ModApiConsumer
{
/// A simulated API consumer.
public class ApiConsumer
{
/*********
** Public methods
*********/
/// Call the event field on the given API.
/// The API to call.
/// Get the number of times the event was called and the last value received.
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);
}
/// Call the event property on the given API.
/// The API to call.
/// Get the number of times the event was called and the last value received.
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);
}
}
}