*/
package org.opendaylight.openflowplugin.extension.api;
-import java.util.Collections;
+import static org.junit.Assert.assertEquals;
-import org.junit.Assert;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifPacketIn;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifPacketInBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralExtensionListGrouping;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.general.extension.list.grouping.ExtensionList;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.general.extension.list.grouping.ExtensionListBuilder;
-import org.opendaylight.yangtools.yang.binding.Augmentable;
+import org.opendaylight.yangtools.yang.binding.util.BindingMap;
/**
- * Test of {@link GroupingLooseResolver}
+ * Test of {@link GroupingLooseResolver}.
*/
public class GroupingLooseResolverTest {
- /**
- * test of method {@link GroupingLooseResolver#getExtension(Augmentable)}
- */
@Test
public void testGetExtension() {
- GroupingLooseResolver<GeneralExtensionListGrouping> eqGroup = new GroupingLooseResolver<>(GeneralExtensionListGrouping.class);
+ GroupingLooseResolver<GeneralExtensionListGrouping> eqGroup =
+ new GroupingLooseResolver<>(GeneralExtensionListGrouping.class);
eqGroup.add(GeneralAugMatchNodesNodeTableFlow.class);
eqGroup.add(GeneralAugMatchNotifPacketIn.class);
- MatchBuilder mb1 = new MatchBuilder();
- ExtensionList extension1 = new ExtensionListBuilder().setExtensionKey(JoachimTheBig.class).build();
- GeneralAugMatchNodesNodeTableFlow odlxxx1 = new GeneralAugMatchNodesNodeTableFlowBuilder()
- .setExtensionList(Collections.singletonList(extension1)).build();
- Match match1 = mb1.addAugmentation(GeneralAugMatchNodesNodeTableFlow.class, odlxxx1).build();
+ Match match1 = new MatchBuilder()
+ .addAugmentation(new GeneralAugMatchNodesNodeTableFlowBuilder()
+ .setExtensionList(BindingMap.of(new ExtensionListBuilder()
+ .setExtensionKey(JoachimTheBig.VALUE)
+ .build()))
+ .build())
+ .build();
- org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.received.MatchBuilder mb2 = new org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.received.MatchBuilder();
- ExtensionList extension2 = new ExtensionListBuilder().setExtensionKey(JoachimTheTiny.class).build();
- GeneralAugMatchNotifPacketIn odlxxx2 = new GeneralAugMatchNotifPacketInBuilder()
- .setExtensionList(Collections.singletonList(extension2)).build();
- org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.received.Match match2 = mb2.addAugmentation(GeneralAugMatchNotifPacketIn.class, odlxxx2).build();
+ var match2 = new org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service .rev130709.packet.received
+ .MatchBuilder().addAugmentation(new GeneralAugMatchNotifPacketInBuilder()
+ .setExtensionList(BindingMap.of(
+ new ExtensionListBuilder().setExtensionKey(JoachimTheTiny.VALUE).build()))
+ .build())
+ .build();
- Assert.assertEquals(JoachimTheBig.class, eqGroup.getExtension(match1).get().getExtensionList().get(0).getExtensionKey());
- Assert.assertEquals(JoachimTheTiny.class, eqGroup.getExtension(match2).get().getExtensionList().get(0).getExtensionKey());
+ assertEquals(JoachimTheBig.VALUE, eqGroup.getExtension(match1).orElseThrow()
+ .nonnullExtensionList().values().iterator().next().getExtensionKey());
+ assertEquals(JoachimTheTiny.VALUE, eqGroup.getExtension(match2).orElseThrow()
+ .nonnullExtensionList().values().iterator().next().getExtensionKey());
}
-
- private static class JoachimTheBig extends ExtensionKey {
- // nobody
- }
-
- private static class JoachimTheTiny extends ExtensionKey {
- // nobody
+
+ private interface JoachimTheBig extends ExtensionKey {
+ JoachimTheBig VALUE = () -> JoachimTheBig.class;
}
+ private interface JoachimTheTiny extends ExtensionKey {
+ JoachimTheTiny VALUE = () -> JoachimTheTiny.class;
+ }
}