2 * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.openflowplugin.impl.protocol.serialization;
11 import org.junit.Before;
12 import org.opendaylight.openflowjava.protocol.api.extensibility.OFGeneralSerializer;
13 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
14 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerExtensionProvider;
15 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
16 import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
17 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterIdMeterSubTypeSerializerKey;
18 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterIdSerializerKey;
19 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterSerializerKey;
20 import org.opendaylight.openflowjava.protocol.api.keys.InstructionSerializerKey;
21 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
22 import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
23 import org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.experimenter.core.ExperimenterDataOfChoice;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;
30 public abstract class AbstractSerializerTest {
31 private SerializerExtensionProvider provider;
32 private SerializerRegistry registry;
35 public void setUp() throws Exception {
36 registry = new SerializerRegistryImpl();
38 provider = new SerializerExtensionProviderImpl(registry);
39 SerializerInjector.injectSerializers(provider);
43 protected SerializerRegistry getRegistry() {
47 protected SerializerExtensionProvider getProvider() {
51 protected abstract void init();
53 private static class SerializerExtensionProviderImpl implements SerializerExtensionProvider {
55 private final SerializerRegistry registry;
57 SerializerExtensionProviderImpl(final SerializerRegistry registry) {
58 this.registry = registry;
62 public <K> void registerSerializer(MessageTypeKey<K> messageTypeKey, OFGeneralSerializer ofGeneralSerializer) {
63 registry.registerSerializer(messageTypeKey, ofGeneralSerializer);
67 public boolean unregisterSerializer(ExperimenterSerializerKey key) {
72 public void registerActionSerializer(ActionSerializerKey<?> key, OFGeneralSerializer serializer) {
76 public void registerInstructionSerializer(InstructionSerializerKey<?> key, OFGeneralSerializer serializer) {
80 public <C extends OxmClassBase, F extends MatchField> void registerMatchEntrySerializer(
81 MatchEntrySerializerKey<C, F> key, OFGeneralSerializer serializer) {
85 public void registerExperimenterMessageSerializer(ExperimenterIdSerializerKey<? extends
86 ExperimenterDataOfChoice> key, OFSerializer<? extends ExperimenterDataOfChoice> serializer) {
90 public void registerMultipartRequestSerializer(ExperimenterIdSerializerKey<? extends
91 ExperimenterDataOfChoice> key, OFSerializer<? extends ExperimenterDataOfChoice> serializer) {
95 public void registerMultipartRequestTFSerializer(ExperimenterIdSerializerKey<TableFeatureProperties> key,
96 OFGeneralSerializer serializer) {
100 public void registerMeterBandSerializer(ExperimenterIdSerializerKey<MeterBandExperimenterCase> key,
101 OFSerializer<MeterBandExperimenterCase> serializer) {
106 public void registerMeterBandSerializer(ExperimenterIdMeterSubTypeSerializerKey<MeterBandExperimenterCase>
107 key, OFSerializer<MeterBandExperimenterCase> serializer) {