2 * Copyright (c) 2015 Brocade Communications Systems, Inc. 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
8 package org.opendaylight.mdsal.dom.api.clustering;
10 import static org.opendaylight.mdsal.dom.api.clustering.DOMEntity.ENTITY;
11 import static org.junit.Assert.*;
12 import java.util.List;
13 import java.util.Map.Entry;
14 import org.junit.Test;
15 import org.opendaylight.yangtools.yang.common.QName;
16 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
17 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
18 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
21 * @author Thomas Pantelis
23 public class DOMEntityTest {
24 static String ENTITY_TYPE1 = "type1";
25 static String ENTITY_TYPE2 = "type2";
26 static final YangInstanceIdentifier ID1 = YangInstanceIdentifier.of(QName.create("test", "2015-11-24", "one"));
27 static final YangInstanceIdentifier ID2 = YangInstanceIdentifier.of(QName.create("test", "2015-11-24", "two"));
30 public void testHashCode() {
31 DOMEntity entity1 = new DOMEntity(ENTITY_TYPE1, ID1);
33 assertEquals("hashCode", entity1.hashCode(), new DOMEntity(ENTITY_TYPE1, ID1).hashCode());
34 assertNotEquals("hashCode", entity1.hashCode(), new DOMEntity(ENTITY_TYPE2, ID2).hashCode());
38 public void testEquals() {
39 DOMEntity entity1 = new DOMEntity(ENTITY_TYPE1, ID1);
41 assertEquals("Same", true, entity1.equals(entity1));
42 assertEquals("Same", true, entity1.equals(new DOMEntity(ENTITY_TYPE1, ID1)));
43 assertEquals("Different entity type", false, entity1.equals(new DOMEntity(ENTITY_TYPE2, ID1)));
44 assertEquals("Different entity ID", false, entity1.equals(new DOMEntity(ENTITY_TYPE1, ID2)));
45 assertEquals("Different Object", false, entity1.equals(new Object()));
46 assertEquals("Equals null", false, entity1.equals(null));
50 public void testEntityNameConstructor() {
51 DOMEntity entity = new DOMEntity(ENTITY_TYPE1, "foo");
53 List<PathArgument> pathArgs = entity.getIdentifier().getPathArguments();
54 assertEquals("pathArgs size", 2, pathArgs.size());
55 assertEquals("First PathArgument node type", ENTITY, pathArgs.get(0).getNodeType());
56 assertEquals("Second PathArgument node type", ENTITY, pathArgs.get(1).getNodeType());
57 Entry<QName, Object> key = ((NodeIdentifierWithPredicates) pathArgs.get(1)).getKeyValues().entrySet().iterator().next();
58 assertEquals("Key node type", QName.create(ENTITY, "name"), key.getKey());
59 assertEquals("Key value", "foo", key.getValue());