<!--
  ~ Copyright 2015 Open Networking Laboratory
  ~
  ~ 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.
  -->
<scenario name="net-smoke" description="Basic network functionality smoke test">
    <group name="Net-Smoke">
        <import file="${ONOS_SCENARIOS}/net-setup.xml"/>

        <import file="${ONOS_SCENARIOS}/net-pingall.xml" namespace="Reactive-Forwarding"/>
        <dependency name="Reactive-Forwarding.Net-Pingall" requires="Net-Setup"/>

        <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Reactive-Forwarding"/>
        <dependency name="Reactive-Forwarding.Net-Link-Down-Up" requires="Net-Setup,~Reactive-Forwarding.Net-Pingall"/>

        <import file="${ONOS_SCENARIOS}/net-host-intent.xml"/>
        <dependency name="Host-Intent-Connectivity" requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up"/>

        <import file="${ONOS_SCENARIOS}/net-point-intent.xml"/>
        <dependency name="P2P-Intent-Connectivity" requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up,Host-Intent-Connectivity"/>

        <import file="${ONOS_SCENARIOS}/net-single-to-multi-intent.xml"/>
        <dependency name="S2M-Intent-Connectivity"
                    requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up,Host-Intent-Connectivity,P2P-Intent-Connectivity"/>

        <import file="${ONOS_SCENARIOS}/net-multi-to-single-intent.xml"/>
        <dependency name="M2S-Intent-Connectivity"
                    requires="S2M-Intent-Connectivity"/>
        
        <import file="${ONOS_SCENARIOS}/net-rest.xml"/>
        <dependency name="Net-REST" requires="Net-Setup,P2P-Intent-Connectivity,M2S-Intent-Connectivity"/>

        <import file="${ONOS_SCENARIOS}/net-create-flows.xml"/>
        <dependency name="Net-Create-Flows" requires="Net-Setup,P2P-Intent-Connectivity,Net-REST"/>

        <import file="${ONOS_SCENARIOS}/net-flow-objectives.xml"/>
        <dependency name="Net-Flow-Objectives" requires="Net-Setup,P2P-Intent-Connectivity,Net-REST,Net-Create-Flows"/>

        <import file="${ONOS_SCENARIOS}/net-topo.xml"/>
        <dependency name="Net-Topo" requires="Net-Setup,Net-Create-Flows,Net-Flow-Objectives"/>

        <import file="${ONOS_SCENARIOS}/net-teardown.xml"/>
        <dependency name="Net-Teardown" requires="~Host-Intent-Connectivity,
                                                  ~P2P-Intent-Connectivity,
                                                  ~Net-REST,
                                                  ~Net-Create-Flows,
                                                  ~Net-Topo"/>
    </group>
</scenario>
