blob: 01cc7a1688a70daa6ccb506962da5aa1951235a9 [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;
Thomas Vachuska80b0a802015-07-17 08:43:30 -070023import static org.onosproject.net.driver.DefaultDriverDataTest.DEVICE_ID;
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080024
25public class DefaultDriverTest {
26
27 @Test
28 public void basics() {
Thomas Vachuska635c2d72015-05-08 14:32:13 -070029 DefaultDriver ddp = new DefaultDriver("foo.base", null, "Circus", "lux", "1.2a",
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080030 ImmutableMap.of(TestBehaviour.class,
Thomas Vachuska635c2d72015-05-08 14:32:13 -070031 TestBehaviourImpl.class,
32 TestBehaviourTwo.class,
33 TestBehaviourTwoImpl.class),
34 ImmutableMap.of("foo", "bar"));
35
36 DefaultDriver ddc = new DefaultDriver("foo.bar", ddp, "Circus", "lux", "1.2a",
37 ImmutableMap.of(),
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080038 ImmutableMap.of("foo", "bar"));
39 assertEquals("incorrect name", "foo.bar", ddc.name());
Thomas Vachuska635c2d72015-05-08 14:32:13 -070040 assertEquals("incorrect parent", ddp, ddc.parent());
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080041 assertEquals("incorrect mfr", "Circus", ddc.manufacturer());
42 assertEquals("incorrect hw", "lux", ddc.hwVersion());
43 assertEquals("incorrect sw", "1.2a", ddc.swVersion());
44
Thomas Vachuska635c2d72015-05-08 14:32:13 -070045 assertEquals("incorrect behaviour count", 2, ddp.behaviours().size());
46 assertEquals("incorrect behaviour count", 0, ddc.behaviours().size());
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080047 assertTrue("incorrect behaviour", ddc.hasBehaviour(TestBehaviour.class));
48
Thomas Vachuska80b0a802015-07-17 08:43:30 -070049 Behaviour b1 = ddc.createBehaviour(new DefaultDriverData(ddc, DEVICE_ID), TestBehaviour.class);
Thomas Vachuska635c2d72015-05-08 14:32:13 -070050 assertTrue("incorrect behaviour class", b1 instanceof TestBehaviourImpl);
51
Thomas Vachuska80b0a802015-07-17 08:43:30 -070052 Behaviour b2 = ddc.createBehaviour(new DefaultDriverHandler(new DefaultDriverData(ddc, DEVICE_ID)),
Thomas Vachuska635c2d72015-05-08 14:32:13 -070053 TestBehaviourTwo.class);
54 assertTrue("incorrect behaviour class", b2 instanceof TestBehaviourTwoImpl);
55
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080056 assertEquals("incorrect property count", 1, ddc.properties().size());
57 assertEquals("incorrect key count", 1, ddc.keys().size());
58 assertEquals("incorrect property", "bar", ddc.value("foo"));
59
60 assertTrue("incorrect toString", ddc.toString().contains("lux"));
61 }
62
63 @Test
64 public void merge() {
Thomas Vachuska635c2d72015-05-08 14:32:13 -070065 DefaultDriver one = new DefaultDriver("foo.bar", null, "Circus", "lux", "1.2a",
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080066 ImmutableMap.of(TestBehaviour.class,
67 TestBehaviourImpl.class),
68 ImmutableMap.of("foo", "bar"));
Thomas Vachuska5c2f8132015-04-08 23:09:08 -070069 Driver ddc =
Thomas Vachuska635c2d72015-05-08 14:32:13 -070070 one.merge(new DefaultDriver("foo.bar", null, "", "", "",
Thomas Vachuskaa8f4e7d2015-01-08 17:31:55 -080071 ImmutableMap.of(TestBehaviourTwo.class,
72 TestBehaviourTwoImpl.class),
73 ImmutableMap.of("goo", "wee")));
74
75 assertEquals("incorrect name", "foo.bar", ddc.name());
76 assertEquals("incorrect mfr", "Circus", ddc.manufacturer());
77 assertEquals("incorrect hw", "lux", ddc.hwVersion());
78 assertEquals("incorrect sw", "1.2a", ddc.swVersion());
79
80 assertEquals("incorrect behaviour count", 2, ddc.behaviours().size());
81 assertTrue("incorrect behaviour", ddc.hasBehaviour(TestBehaviourTwo.class));
82
83 assertEquals("incorrect property count", 2, ddc.properties().size());
84 assertEquals("incorrect key count", 2, ddc.keys().size());
85 assertEquals("incorrect property", "wee", ddc.value("goo"));
86
87 assertTrue("incorrect toString", ddc.toString().contains("Circus"));
88 }
89}