/* * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common; import org.junit.Assert; import org.junit.Test; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Ordered; import org.opendaylight.yangtools.yang.binding.DataContainer; /** * To test OrderComparator */ public class OrderComparatorTest { @Test public void testBothObjectsNull() { try { OrderComparator.<MockOrderedObject>build().compare(null, null); org.junit.Assert.fail("Passing null to OrderCompartor should raise " + "a NullPointerException"); } catch (NullPointerException npe) { // expected } } @Test public void testEitherObjectNull() { try { MockOrderedObject obj1 = new MockOrderedObject(); obj1.setOrder(0); MockOrderedObject obj2 = null; OrderComparator.<MockOrderedObject>build().compare(obj1, obj2); org.junit.Assert.fail("Passing null to OrderCompartor should raise " + "a NullPointerException"); } catch (NullPointerException npe) { // expected } try { MockOrderedObject obj1 = null; MockOrderedObject obj2 = new MockOrderedObject(); obj2.setOrder(1); OrderComparator.<MockOrderedObject>build().compare(obj1, obj2); org.junit.Assert.fail("Passing null to OrderCompartor should raise " + "a NullPointerException"); } catch (NullPointerException npe) { // expected } } @Test public void testCompare() { MockOrderedObject obj1 = new MockOrderedObject(); obj1.setOrder(0); MockOrderedObject obj2 = new MockOrderedObject(); obj2.setOrder(1); Assert.assertEquals(-1, OrderComparator.<MockOrderedObject>build().compare(obj1, obj2)); obj1 = new MockOrderedObject(); obj1.setOrder(1); obj2 = new MockOrderedObject(); obj2.setOrder(0); Assert.assertEquals(1, OrderComparator.<MockOrderedObject>build().compare(obj1, obj2)); obj1 = new MockOrderedObject(); obj1.setOrder(1); obj2 = new MockOrderedObject(); obj2.setOrder(1); Assert.assertEquals(0, OrderComparator.<MockOrderedObject>build().compare(obj1, obj2)); } public class MockOrderedObject implements Ordered { private Integer order; public void setOrder(Integer order) { this.order = order; } @Override public Integer getOrder() { return order; } @Override public Class<? extends DataContainer> getImplementedInterface() { return Ordered.class; } } }