<?xml version="1.0"?>
<psalm
  errorLevel="1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="https://getpsalm.org/schema/config"
  xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
    errorBaseline="psalm-baseline.xml"
>
    <projectFiles>
        <directory name="bin"/>
        <directory name="config"/>
        <directory name="src"/>
        <directory name="test"/>
        <directory name="view"/>

        <ignoreFiles>
            <file name="config/module.config.php"/>
            <directory name="test/Controller/TestAsset"/>
            <directory name="test/Model/TestAsset"/>
            <directory name="test/TestAsset"/>
            <directory name="vendor"/>
        </ignoreFiles>
    </projectFiles>

    <issueHandlers>
        <InternalMethod>
            <errorLevel type="suppress">
                <referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::method"/>
            </errorLevel>
            <errorLevel type="suppress">
                <referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::willReturn"/>
            </errorLevel>
            <errorLevel type="suppress">
                <referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::with"/>
            </errorLevel>
        </InternalMethod>

        <MissingFile>
            <errorLevel type="suppress">
                <file name="test/Model/DbAutodiscoveryModelFactoryTest.php"/>
                <file name="test/Model/DbConnectedRestServiceModelTest.php"/>
                <file name="test/Model/RestServiceModelTest.php"/>
                <file name="test/Model/RestServiceResourceTest.php"/>
                <file name="test/Controller/AuthenticationControllerTest.php"/>
                <file name="test/Model/VersioningModelTest.php"/>
            </errorLevel>
        </MissingFile>

        <UndefinedClass>
            <errorLevel type="suppress">
                <file name="test/Model/AuthenticationModelTest.php"/>
                <file name="src/Model/AuthenticationModel.php"/>
            </errorLevel>
        </UndefinedClass>

        <DeprecatedClass>
            <errorLevel type="suppress">
                <file name="test/Listener/CryptFilterListenerTest.php"/>
                <file name="src/Model/AbstractAutodiscoveryModel.php"/>
                <file name="src/Model/DbConnectedRestServiceModel.php"/>
            </errorLevel>
        </DeprecatedClass>

        <MoreSpecificImplementedParamType>
            <errorLevel type="suppress">
                <directory name="src/Model"/>
            </errorLevel>
        </MoreSpecificImplementedParamType>

        <MixedArgumentTypeCoercion>
            <errorLevel type="suppress">
                <file name="src/InputFilter/InputFilterInputFilter.php"/>
            </errorLevel>
        </MixedArgumentTypeCoercion>

        <PossiblyUndefinedMethod>
            <errorLevel type="suppress">
                <directory name="test"/>
            </errorLevel>
        </PossiblyUndefinedMethod>

        <InvalidArgument>
            <errorLevel type="suppress">
                <file name="test/Controller/AuthenticationControllerTest.php"/>
            </errorLevel>
        </InvalidArgument>
    </issueHandlers>

    <plugins>
        <pluginClass class="Psalm\PhpUnitPlugin\Plugin"/>
    </plugins>
</psalm>
