blob: be1f0489bd7a480dbf1e398b06e8d1b6de9654c3 [file] [log] [blame]
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2014-present Open Networking Foundation
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Brian O'Connorabafb502014-12-02 22:26:20 -080016package org.onosproject.net.provider;
tom132b58a2014-08-28 16:11:28 -070017
18import org.junit.Test;
19
20import static org.hamcrest.MatcherAssert.assertThat;
21import static org.junit.Assert.assertEquals;
22
23/**
24 * Test of the base provider registry.
25 */
26public class AbstractProviderRegistryTest {
27
28 private class TestProviderService extends AbstractProviderService<TestProvider> {
29 protected TestProviderService(TestProvider provider) {
30 super(provider);
31 }
32 }
33
34 private class TestProviderRegistry extends AbstractProviderRegistry<TestProvider, TestProviderService> {
35 @Override
36 protected TestProviderService createProviderService(TestProvider provider) {
37 return new TestProviderService(provider);
38 }
39 }
40
41 @Test
42 public void basics() {
43 TestProviderRegistry registry = new TestProviderRegistry();
44 assertEquals("incorrect provider count", 0, registry.getProviders().size());
45
tom7e02cda2014-09-18 12:05:46 -070046 ProviderId fooId = new ProviderId("of", "foo");
tom132b58a2014-08-28 16:11:28 -070047 TestProvider pFoo = new TestProvider(fooId);
48 TestProviderService psFoo = registry.register(pFoo);
49 assertEquals("incorrect provider count", 1, registry.getProviders().size());
50 assertThat("provider not found", registry.getProviders().contains(fooId));
51 assertEquals("incorrect provider", psFoo.provider(), pFoo);
52
toma5368862014-10-01 12:35:48 -070053 ProviderId barId = new ProviderId("snmp", "bar");
tom132b58a2014-08-28 16:11:28 -070054 TestProvider pBar = new TestProvider(barId);
55 TestProviderService psBar = registry.register(pBar);
56 assertEquals("incorrect provider count", 2, registry.getProviders().size());
57 assertThat("provider not found", registry.getProviders().contains(barId));
58 assertEquals("incorrect provider", psBar.provider(), pBar);
59
60 psFoo.checkValidity();
61 registry.unregister(pFoo);
62 psBar.checkValidity();
63 assertEquals("incorrect provider count", 1, registry.getProviders().size());
64 assertThat("provider not found", registry.getProviders().contains(barId));
65 }
66
toma5368862014-10-01 12:35:48 -070067 @Test
68 public void ancillaryProviders() {
69 TestProviderRegistry registry = new TestProviderRegistry();
70 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
Ray Milkey48ea5a02019-02-07 08:01:52 -080071 TestProvider pBar = new TestProvider(new ProviderId("of2", "bar"));
72 TestProvider aBar = new TestProvider(new ProviderId("of", "foo", true));
toma5368862014-10-01 12:35:48 -070073 registry.register(pFoo);
74 registry.register(pBar);
Ray Milkey48ea5a02019-02-07 08:01:52 -080075 registry.register(aBar);
toma5368862014-10-01 12:35:48 -070076 assertEquals("incorrect provider count", 2, registry.getProviders().size());
77 }
78
tom132b58a2014-08-28 16:11:28 -070079 @Test(expected = IllegalStateException.class)
80 public void duplicateRegistration() {
81 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070082 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
tom132b58a2014-08-28 16:11:28 -070083 registry.register(pFoo);
84 registry.register(pFoo);
85 }
86
toma5368862014-10-01 12:35:48 -070087 @Test(expected = IllegalStateException.class)
88 public void duplicateSchemeRegistration() {
89 TestProviderRegistry registry = new TestProviderRegistry();
90 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
91 TestProvider pBar = new TestProvider(new ProviderId("of", "bar"));
92 registry.register(pFoo);
93 registry.register(pBar);
94 }
95
tom132b58a2014-08-28 16:11:28 -070096 @Test
97 public void voidUnregistration() {
98 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070099 registry.unregister(new TestProvider(new ProviderId("of", "foo")));
tom132b58a2014-08-28 16:11:28 -0700100 }
101
102 @Test(expected = IllegalStateException.class)
103 public void unregistration() {
104 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -0700105 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
tom132b58a2014-08-28 16:11:28 -0700106 TestProviderService psFoo = registry.register(pFoo);
107 registry.unregister(pFoo);
108 psFoo.checkValidity();
109 }
110}