| /* |
| * 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.incubator.net.virtual.impl.provider; |
| |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.onosproject.incubator.net.virtual.NetworkId; |
| import org.onosproject.incubator.net.virtual.provider.AbstractVirtualProvider; |
| import org.onosproject.incubator.net.virtual.provider.AbstractVirtualProviderService; |
| import org.onosproject.net.provider.ProviderId; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| public class VirtualProviderManagerTest { |
| |
| private static final String TEST_SCHEME1 = "test1"; |
| private static final String TEST_SCHEME2 = "test2"; |
| private static final String TEST_ID1 = "org.onosproject.virtual.testprovider1"; |
| private static final String TEST_ID2 = "org.onosproject.virtual.testprovider1"; |
| private static final NetworkId NETWORK_ID1 = NetworkId.networkId(1); |
| private static final NetworkId NETWORK_ID2 = NetworkId.networkId(2); |
| |
| VirtualProviderManager virtualProviderManager; |
| |
| @Before |
| public void setUp() throws Exception { |
| virtualProviderManager = new VirtualProviderManager(); |
| } |
| |
| /** |
| * Tests registerProvider() and unregisterProvider(). |
| */ |
| @Test |
| public void registerProviderTest() { |
| TestProvider1 provider1 = new TestProvider1(); |
| virtualProviderManager.registerProvider(provider1); |
| |
| assertEquals("The number of registered provider did not match.", 1, |
| virtualProviderManager.getProviders().size()); |
| |
| assertEquals("The registered provider did not match", provider1, |
| virtualProviderManager.getProvider(TEST_SCHEME1)); |
| |
| virtualProviderManager.unregisterProvider(provider1); |
| |
| TestProvider2 provider2 = new TestProvider2(); |
| virtualProviderManager.registerProvider(provider2); |
| |
| assertEquals("The number of registered provider did not match.", 1, |
| virtualProviderManager.getProviders().size()); |
| |
| virtualProviderManager.unregisterProvider(provider2); |
| |
| assertEquals("The number of registered provider did not match.", 0, |
| virtualProviderManager.getProviders().size()); |
| } |
| |
| /** |
| * Tests registerProviderService() and getProviderService(). |
| */ |
| @Test |
| public void registerProviderServiceTest() { |
| TestProvider1 provider1 = new TestProvider1(); |
| virtualProviderManager.registerProvider(provider1); |
| |
| TestProviderService1 providerService1 = new TestProviderService1(); |
| virtualProviderManager.registerProviderService(NETWORK_ID1, providerService1); |
| |
| assertEquals(providerService1, |
| virtualProviderManager.getProviderService(NETWORK_ID1, TestProvider1.class)); |
| } |
| |
| private class TestProvider1 extends AbstractVirtualProvider { |
| protected TestProvider1() { |
| super(new ProviderId(TEST_SCHEME1, TEST_ID1)); |
| } |
| } |
| |
| private class TestProvider2 extends AbstractVirtualProvider { |
| protected TestProvider2() { |
| super(new ProviderId(TEST_SCHEME2, TEST_ID2)); |
| } |
| } |
| |
| private class TestProviderService1 extends AbstractVirtualProviderService<TestProvider1> { |
| } |
| |
| private class TestProviderService2 extends AbstractVirtualProviderService<TestProvider2> { |
| } |
| } |