blob: 37bee71b8ad2e63c804cbdd543d5a5fbf35d52a6 [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
tom7e02cda2014-09-18 12:05:46 -070038 ProviderId barId = new ProviderId("of", "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
52 @Test(expected = IllegalStateException.class)
53 public void duplicateRegistration() {
54 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070055 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
tom132b58a2014-08-28 16:11:28 -070056 registry.register(pFoo);
57 registry.register(pFoo);
58 }
59
60 @Test
61 public void voidUnregistration() {
62 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070063 registry.unregister(new TestProvider(new ProviderId("of", "foo")));
tom132b58a2014-08-28 16:11:28 -070064 }
65
66 @Test(expected = IllegalStateException.class)
67 public void unregistration() {
68 TestProviderRegistry registry = new TestProviderRegistry();
tom7e02cda2014-09-18 12:05:46 -070069 TestProvider pFoo = new TestProvider(new ProviderId("of", "foo"));
tom132b58a2014-08-28 16:11:28 -070070 TestProviderService psFoo = registry.register(pFoo);
71 registry.unregister(pFoo);
72 psFoo.checkValidity();
73 }
74}