USING AxUnit;
USING UserLibrary;
NAMESPACE MockingPayloadTest
FUNCTION FuncMock: INT
VAR_TEMP
p : ref_to myPayload;
END_VAR
p ?= AxUnit.Mocking.GetPayload();
IF (p <> NULL) THEN
FuncMock := p^.Value;
END_IF;
END_FUNCTION
//the IPayload interface must be implemented in order for the payload to work
CLASS MyPayload IMPLEMENTS AxUnit.Mocking.IPayload
VAR PUBLIC
Value: INT;
END_VAR
END_CLASS
{TestFixture}
CLASS MyTests
VAR
_payloadInstance: MyPayload;
END_VAR
{Test}
METHOD PUBLIC Returns123
_payloadInstance.Value := 123;
AxUnit.Mocking.Mock(NAME_OF(GetNumber1), NAME_OF(FuncMock), _payloadInstance);
AxUnit.Assert.Equal(GetANumber(), 123);
_payloadInstance.Value := 456;
AxUnit.Mocking.Mock(NAME_OF(GetNumber1), NAME_OF(FuncMock), _payloadInstance);
AxUnit.Assert.Equal(GetANumber(), 456);
END_METHOD
END_CLASS
END_NAMESPACE