blob: 3ecd90d21b7a6b1d69fddb9c7e84b5f556251ff6 [file] [log] [blame]
tom132b58a2014-08-28 16:11:28 -07001package org.onlab.onos.net.provider;
2
3import org.junit.Test;
4
5import static org.hamcrest.MatcherAssert.assertThat;
6import static org.junit.Assert.assertEquals;
7
8/**
9 * Test of the base provider registry.
10 */
11public class AbstractProviderRegistryTest {
12
13 private class TestProviderService extends AbstractProviderService<TestProvider> {
14 protected TestProviderService(TestProvider provider) {
15 super(provider);
16 }
17 }
18
19 private class TestProviderRegistry extends AbstractProviderRegistry<TestProvider, TestProviderService> {
20 @Override
21 protected TestProviderService createProviderService(TestProvider provider) {
22 return new TestProviderService(provider);
23 }
24 }
25
26 @Test
27 public void basics() {
28 TestProviderRegistry registry = new TestProviderRegistry();
29 assertEquals("incorrect provider count", 0, registry.getProviders().size());
30
tom7e02cda2014-09-18 12:05:46 -070031 ProviderId fooId = new ProviderId("of", "foo");
tom132b58a2014-08-28 16:11:28 -070032 TestProvider pFoo = new TestProvider(fooId);
33 TestProviderService psFoo = registry.register(pFoo);
34 assertEquals("incorrect provider count", 1, registry.getProviders().size());
35 assertThat("provider not found", registry.getProviders().contains(fooId));
36 assertEquals("incorrect provider", psFoo.provider(), pFoo);
37
toma5368862014-10-01 12:35:48 -070038 ProviderId barId = new ProviderId("snmp", "bar");
tom132b58a2014-08-28 16:11:28 -070039 TestProvider pBar = new TestProvider(barId);
40 TestProviderService psBar = registry.register(pBar);
41 assertEquals("incorrect provider count", 2, registry.getProviders().size());
42 assertThat("provider not found", registry.getProviders().contains(barId));
43 assertEquals("incorrect provider", psBar.provider(), pBar);
44
45 psFoo.checkValidity();
46 registry.unregister(pFoo);
47 psBar.checkValidity();
48 assertEquals("incorrect provider count", 1, registry.getProviders().size());
49 assertThat("provider not found", registry.getProviders().contains(barId));
50 }
51
toma5368862014-10-01 12:35:48 -070052 @Test
53 public void ancillaryProviders() {
54 TestProviderRegistry registry = new TestProviderRegistry();
55 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
56 TestProvider pBar = new TestProvider(new ProviderId("of", "bar", true));
57 registry.register(pFoo);
58 registry.register(pBar);
59 assertEquals("incorrect provider count", 2, registry.getProviders().size());
60 }
61
tom132b58a2014-08-28 16:11:28 -070062 @Test(expected = IllegalStateException.class)
63 public void duplicateRegistration() {
64 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070065 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
tom132b58a2014-08-28 16:11:28 -070066 registry.register(pFoo);
67 registry.register(pFoo);
68 }
69
toma5368862014-10-01 12:35:48 -070070 @Test(expected = IllegalStateException.class)
71 public void duplicateSchemeRegistration() {
72 TestProviderRegistry registry = new TestProviderRegistry();
73 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
74 TestProvider pBar = new TestProvider(new ProviderId("of", "bar"));
75 registry.register(pFoo);
76 registry.register(pBar);
77 }
78
tom132b58a2014-08-28 16:11:28 -070079 @Test
80 public void voidUnregistration() {
81 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070082 registry.unregister(new TestProvider(new ProviderId("of", "foo")));
tom132b58a2014-08-28 16:11:28 -070083 }
84
85 @Test(expected = IllegalStateException.class)
86 public void unregistration() {
87 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070088 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
tom132b58a2014-08-28 16:11:28 -070089 TestProviderService psFoo = registry.register(pFoo);
90 registry.unregister(pFoo);
91 psFoo.checkValidity();
92 }
93}