[Test]
public void Prig_should_throw_when_not_arranged()
{
    using (new IndirectionsContext())
    {
        // Arrange
        PFoo.StaticConstructor().Body = () => { };

        var executeMock = new Mock<IndirectionFunc<int, int>>(MockBehavior.Strict);
        executeMock.Setup(_ => _(10)).Returns(10);
        PFoo.ExecuteInt32().Body = executeMock.Object;

        var submitMock = new Mock<IndirectionAction>(MockBehavior.Strict);
        PFoo.Submit().Body = submitMock.Object;


        // Act, Assert
        Assert.AreEqual(10, Foo.Execute(10));
        Assert.Throws<MockException>(() => Foo.Submit());
    }
}