<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<!--
    Licensed under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
     http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<suite name="Microprofile-jwt-auth-TCK" verbose="1" configfailurepolicy="continue" >
  <test name="Tests">
    <groups>
      <define name="base-groups">
        <include name="arquillian" description="Arquillian internal"/>
        <include name="utils" description="Utility tests"/>
        <include name="jwt" description="Base JsonWebToken tests"/>
        <include name="jaxrs" description="JAX-RS invocation tests"/>
        <include name="cdi" description="Base CDI injection of ClaimValues"/>
        <include name="cdi-json" description="CDI injection of JSON-P values"/>
        <include name="cdi-provider" description="CDI injection of javax.inject.Provider values"/>
      </define>
      <define name="excludes">
        <include name="debug" description="Internal debugging tests" />
      </define>
      <run>
        <include name="base-groups" />
        <exclude name="excludes" />
      </run>
    </groups>
    <classes>
      <class name="org.eclipse.microprofile.jwt.tck.util.TokenUtilsTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.UnsecuredPingTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.RequiredClaimsTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.ClaimValueInjectionTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.JsonValueInjectionTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.ProviderInjectionTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.RolesAllowedTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.InvalidTokenTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.PrimitiveInjectionTest" />
      <class name="org.eclipse.microprofile.jwt.tck.container.jaxrs.PrincipalInjectionTest" />
    </classes>
  </test>
</suite>
