<?xml version="1.0" encoding="UTF-8"?>

<!--
 - Copyright 2017 General Electric Company
 -
 - 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.
 -
 - SPDX-License-Identifier: Apache-2.0
 -->

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="testAll">
    <test name="public">
        <classes>
            <class name="com.ge.predix.test.TestConfig"/>
            <class name="com.ge.predix.integration.test.AttributeConnectorConfigurationIT" />
            <class name="com.ge.predix.acceptance.test.ACSAcceptanceIT"/>
            <class name="com.ge.predix.integration.test.AccessControlServiceIT"/>
            <class name="com.ge.predix.integration.test.PrivilegeManagementAccessControlServiceIT"/>
            <class name="com.ge.predix.integration.test.PolicyEvaluationCachingIT"/>
            <class name="com.ge.predix.integration.test.ACSCorsFilterIT" />
            <class name="com.ge.predix.acceptance.test.policy.admin.PolicyCreationCucumberTest" />
            <class name="com.ge.predix.acceptance.test.policy.evaluation.PolicyEvaluationCucumberTest" />
            <class name="com.ge.predix.acceptance.test.zone.admin.ZoneEnforcementCucumberTest" />
        </classes>
    </test>
</suite>
