blob: 17af6c7f10fe67abe708ec130d67ff34df092766 [file] [log] [blame]
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -08001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
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 */
16package org.onosproject.net.driver;
17
18import com.google.common.collect.ImmutableMap;
19import org.junit.Test;
20
21import static org.junit.Assert.assertEquals;
22import static org.junit.Assert.assertTrue;
23
24public class DefaultDriverTest {
25
26 @Test
27 public void basics() {
Thomas Vachuska635c2d72015-05-08 14:32:13 -070028 DefaultDriver ddp = new DefaultDriver("foo.base", null, "Circus", "lux", "1.2a",
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080029 ImmutableMap.of(TestBehaviour.class,
Thomas Vachuska635c2d72015-05-08 14:32:13 -070030 TestBehaviourImpl.class,
31 TestBehaviourTwo.class,
32 TestBehaviourTwoImpl.class),
33 ImmutableMap.of("foo", "bar"));
34
35 DefaultDriver ddc = new DefaultDriver("foo.bar", ddp, "Circus", "lux", "1.2a",
36 ImmutableMap.of(),
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080037 ImmutableMap.of("foo", "bar"));
38 assertEquals("incorrect name", "foo.bar", ddc.name());
Thomas Vachuska635c2d72015-05-08 14:32:13 -070039 assertEquals("incorrect parent", ddp, ddc.parent());
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080040 assertEquals("incorrect mfr", "Circus", ddc.manufacturer());
41 assertEquals("incorrect hw", "lux", ddc.hwVersion());
42 assertEquals("incorrect sw", "1.2a", ddc.swVersion());
43
Thomas Vachuska635c2d72015-05-08 14:32:13 -070044 assertEquals("incorrect behaviour count", 2, ddp.behaviours().size());
45 assertEquals("incorrect behaviour count", 0, ddc.behaviours().size());
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080046 assertTrue("incorrect behaviour", ddc.hasBehaviour(TestBehaviour.class));
47
Thomas Vachuska635c2d72015-05-08 14:32:13 -070048 Behaviour b1 = ddc.createBehaviour(new DefaultDriverData(ddc), TestBehaviour.class);
49 assertTrue("incorrect behaviour class", b1 instanceof TestBehaviourImpl);
50
51 Behaviour b2 = ddc.createBehaviour(new DefaultDriverHandler(new DefaultDriverData(ddc)),
52 TestBehaviourTwo.class);
53 assertTrue("incorrect behaviour class", b2 instanceof TestBehaviourTwoImpl);
54
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080055 assertEquals("incorrect property count", 1, ddc.properties().size());
56 assertEquals("incorrect key count", 1, ddc.keys().size());
57 assertEquals("incorrect property", "bar", ddc.value("foo"));
58
59 assertTrue("incorrect toString", ddc.toString().contains("lux"));
60 }
61
62 @Test
63 public void merge() {
Thomas Vachuska635c2d72015-05-08 14:32:13 -070064 DefaultDriver one = new DefaultDriver("foo.bar", null, "Circus", "lux", "1.2a",
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080065 ImmutableMap.of(TestBehaviour.class,
66 TestBehaviourImpl.class),
67 ImmutableMap.of("foo", "bar"));
Thomas Vachuska5c2f8132015-04-08 23:09:08 -070068 Driver ddc =
Thomas Vachuska635c2d72015-05-08 14:32:13 -070069 one.merge(new DefaultDriver("foo.bar", null, "", "", "",
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080070 ImmutableMap.of(TestBehaviourTwo.class,
71 TestBehaviourTwoImpl.class),
72 ImmutableMap.of("goo", "wee")));
73
74 assertEquals("incorrect name", "foo.bar", ddc.name());
75 assertEquals("incorrect mfr", "Circus", ddc.manufacturer());
76 assertEquals("incorrect hw", "lux", ddc.hwVersion());
77 assertEquals("incorrect sw", "1.2a", ddc.swVersion());
78
79 assertEquals("incorrect behaviour count", 2, ddc.behaviours().size());
80 assertTrue("incorrect behaviour", ddc.hasBehaviour(TestBehaviourTwo.class));
81
82 assertEquals("incorrect property count", 2, ddc.properties().size());
83 assertEquals("incorrect key count", 2, ddc.keys().size());
84 assertEquals("incorrect property", "wee", ddc.value("goo"));
85
86 assertTrue("incorrect toString", ddc.toString().contains("Circus"));
87 }
88}