sal-common-testutil TestEntityOwnershipService 89/58089/5
authorMichael Vorburger <vorburger@redhat.com>
Thu, 1 Jun 2017 00:53:05 +0000 (02:53 +0200)
committerRobert Varga <nite@hq.sk>
Tue, 6 Jun 2017 11:37:45 +0000 (11:37 +0000)
moved from existing (and already used there)
org.opendaylight.genius.interfacemanager.test.infra, because I now need
to also use this in a new component test for netvirt fibmanager, so
instead of copy/pasting it, let's have it here.

Change-Id: I4a524594f9d4bf0da6015738ef3b454eba13159d
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
opendaylight/md-sal/pom.xml
opendaylight/md-sal/sal-common-testutil/pom.xml [new file with mode: 0644]
opendaylight/md-sal/sal-common-testutil/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/testutil/TestEntityOwnershipService.java [new file with mode: 0644]

index 1c4ad1c5f22e7d2d06776324df7fe0b05849fcb8..39367d2838fb1e8023dad5d7f09f09bfcc07001d 100644 (file)
@@ -21,6 +21,7 @@
     <module>sal-common-api</module>
     <module>sal-common-impl</module>
     <module>sal-common-util</module>
     <module>sal-common-api</module>
     <module>sal-common-impl</module>
     <module>sal-common-util</module>
+    <module>sal-common-testutil</module>
 
     <!-- Binding Independent -->
     <module>sal-dom-api</module>
 
     <!-- Binding Independent -->
     <module>sal-dom-api</module>
diff --git a/opendaylight/md-sal/sal-common-testutil/pom.xml b/opendaylight/md-sal/sal-common-testutil/pom.xml
new file mode 100644 (file)
index 0000000..a320a9a
--- /dev/null
@@ -0,0 +1,33 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.opendaylight.odlparent</groupId>
+    <artifactId>odlparent</artifactId>
+    <version>1.9.0-SNAPSHOT</version>
+    <relativePath />
+  </parent>
+
+  <groupId>org.opendaylight.controller</groupId>
+  <artifactId>sal-common-testutil</artifactId>
+  <version>1.6.0-SNAPSHOT</version>
+
+  <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>sal-common-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>testutils</artifactId>
+      <version>1.2.0-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/opendaylight/md-sal/sal-common-testutil/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/testutil/TestEntityOwnershipService.java b/opendaylight/md-sal/sal-common-testutil/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/testutil/TestEntityOwnershipService.java
new file mode 100644 (file)
index 0000000..230f59c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2016 Red Hat, 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.controller.md.sal.common.api.clustering.testutil;
+
+import static org.opendaylight.yangtools.testutils.mockito.MoreAnswers.realOrException;
+
+import com.google.common.base.Optional;
+import org.mockito.Mockito;
+import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListenerRegistration;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipState;
+
+/**
+ * Fake EntityOwnershipService suitable for non-clustered component tests.
+ *
+ * @author Michael Vorburger
+ */
+public abstract class TestEntityOwnershipService implements EntityOwnershipService {
+
+    private static final EntityOwnershipState STATE = new EntityOwnershipState(true, true);
+
+    public static EntityOwnershipService newInstance() {
+        return Mockito.mock(TestEntityOwnershipService.class, realOrException());
+    }
+
+    @Override
+    public EntityOwnershipCandidateRegistration registerCandidate(Entity entity) {
+        return Mockito.mock(EntityOwnershipCandidateRegistration.class, realOrException());
+    }
+
+    @Override
+    public EntityOwnershipListenerRegistration registerListener(String entityType, EntityOwnershipListener listener) {
+        return Mockito.mock(EntityOwnershipListenerRegistration.class, realOrException());
+    }
+
+    @Override
+    public Optional<EntityOwnershipState> getOwnershipState(Entity forEntity) {
+        return Optional.of(STATE);
+    }
+
+    @Override
+    public boolean isCandidateRegistered(Entity entity) {
+        return true;
+    }
+}