/* * Copyright 2015-present Open Networking Laboratory * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.onosproject.codec.impl; import java.util.ArrayList; import java.util.Map; import com.google.common.collect.ImmutableList; import org.junit.Test; import org.onosproject.net.driver.Behaviour; import org.onosproject.net.driver.DefaultDriver; import org.onosproject.net.driver.Driver; import org.onosproject.net.driver.TestBehaviour; import org.onosproject.net.driver.TestBehaviourImpl; import org.onosproject.net.driver.TestBehaviourTwo; import org.onosproject.net.driver.TestBehaviourTwoImpl; import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.collect.ImmutableMap; import static org.hamcrest.MatcherAssert.assertThat; import static org.onosproject.codec.impl.DriverJsonMatcher.matchesDriver; /** * Unit tests for the driver codec. */ public class DriverCodecTest { @Test public void codecTest() { Map<Class<? extends Behaviour>, Class<? extends Behaviour>> behaviours = ImmutableMap.of(TestBehaviour.class, TestBehaviourImpl.class, TestBehaviourTwo.class, TestBehaviourTwoImpl.class); Map<String, String> properties = ImmutableMap.of("key1", "value1", "key2", "value2"); DefaultDriver parent = new DefaultDriver("parent", new ArrayList<>(), "Acme", "HW1.2.3", "SW1.2.3", behaviours, properties); DefaultDriver child = new DefaultDriver("child", ImmutableList.of(parent), "Acme", "HW1.2.3.1", "SW1.2.3.1", behaviours, properties); MockCodecContext context = new MockCodecContext(); ObjectNode driverJson = context.codec(Driver.class).encode(child, context); assertThat(driverJson, matchesDriver(child)); } }