blob: a7725bd6829b6c73569b2d402bf471d3f45d5fed [file] [log] [blame]
/*
* Copyright 2017-present 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.
*/
package org.onosproject.net.intent.impl.installer;
import org.onosproject.TestApplicationId;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.FilteredConnectPoint;
import org.onosproject.net.ResourceGroup;
import org.onosproject.net.flow.DefaultTrafficSelector;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.intent.AbstractIntentTest;
import org.onosproject.net.intent.IntentExtensionService;
import org.onosproject.net.intent.IntentInstallCoordinator;
import org.onosproject.net.intent.IntentOperationContext;
import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.PointToPointIntent;
import org.onosproject.net.intent.impl.ObjectiveTrackerService;
import static org.easymock.EasyMock.createMock;
/**
* Abstract class to hold the common variables and pieces of code for Intent
* installer test.
*/
public class AbstractIntentInstallerTest extends AbstractIntentTest {
protected static final ApplicationId APP_ID = TestApplicationId.create("IntentInstallerTest");
protected static final ConnectPoint CP1 = ConnectPoint.deviceConnectPoint("s1/1");
protected static final ConnectPoint CP2 = ConnectPoint.deviceConnectPoint("s1/2");
protected static final ConnectPoint CP3 = ConnectPoint.deviceConnectPoint("s1/3");
protected static final Key KEY1 = Key.of("test intent 1", APP_ID);
protected static final ResourceGroup RG1 = ResourceGroup.of("test resource group 1");
protected static final int DEFAULT_PRIORITY = 30000;
protected IntentExtensionService intentExtensionService;
protected ObjectiveTrackerService trackerService;
protected TestIntentInstallCoordinator intentInstallCoordinator;
public void setup() {
super.setUp();
intentExtensionService = createMock(IntentExtensionService.class);
trackerService = createMock(ObjectiveTrackerService.class);
intentInstallCoordinator = new TestIntentInstallCoordinator();
}
/**
* Creates point to point Intent for test.
*
* @return the point to point Intent
*/
public PointToPointIntent createP2PIntent() {
PointToPointIntent intent;
TrafficSelector selector = DefaultTrafficSelector.emptySelector();
TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
FilteredConnectPoint ingress = new FilteredConnectPoint(CP1);
FilteredConnectPoint egress = new FilteredConnectPoint(CP2);
intent = PointToPointIntent.builder()
.selector(selector)
.treatment(treatment)
.filteredIngressPoint(ingress)
.filteredEgressPoint(egress)
.appId(APP_ID)
.build();
return intent;
}
/**
* The Intent install coordinator for test.
* Records success and fail context.
*/
class TestIntentInstallCoordinator implements IntentInstallCoordinator {
IntentOperationContext successContext;
IntentOperationContext failedContext;
@Override
public void intentInstallSuccess(IntentOperationContext context) {
successContext = context;
}
@Override
public void intentInstallFailed(IntentOperationContext context) {
failedContext = context;
}
}
}