From 36df04342f2cb7be3f7eae00062d00587c288be3 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 5 Jan 2018 14:39:05 +0100
Subject: [PATCH] no-jira: fix unit tests for video, make them run several
 times, implement hashCode and equals method for VideoMeta object...

---
 .../modules/video/model/VideoMetaImpl.java    | 41 ++++++++---------
 .../video/manager/VideoMetadataDAOTest.java   | 45 ++++++++++---------
 .../manager/VideoTranscodingDAOTest.java      |  4 +-
 3 files changed, 47 insertions(+), 43 deletions(-)

diff --git a/src/main/java/org/olat/modules/video/model/VideoMetaImpl.java b/src/main/java/org/olat/modules/video/model/VideoMetaImpl.java
index e9d6e04fea8..5066c4bf357 100644
--- a/src/main/java/org/olat/modules/video/model/VideoMetaImpl.java
+++ b/src/main/java/org/olat/modules/video/model/VideoMetaImpl.java
@@ -77,20 +77,6 @@ public class VideoMetaImpl implements VideoMeta, Persistable, ModifiedInfo {
 	@Column(name="vid_length", nullable=true, insertable=true, updatable=true)
 	private String length;	
 	
-
-
-	public VideoMetaImpl(OLATResource videoResource, int width, int height, long size, String format, String length) {
-		super();
-		this.creationDate = new Date();
-		this.lastModified = new Date();
-		this.videoResource = videoResource;
-		this.width = width;
-		this.height = height;
-		this.size = size;
-		this.format = format;
-		this.length = length;
-	}
-	
 	public VideoMetaImpl(int width, int height, long size) {
 		this.width = width;
 		this.height = height;
@@ -121,11 +107,6 @@ public class VideoMetaImpl implements VideoMeta, Persistable, ModifiedInfo {
 		this.lastModified = date;
 	}
 
-	@Override
-	public boolean equalsByPersistableKey(Persistable persistable) {
-		return false;
-	}
-
 	@Override
 	public Long getKey() {
 		return key;
@@ -190,6 +171,26 @@ public class VideoMetaImpl implements VideoMeta, Persistable, ModifiedInfo {
 	public void setLength(String length) {
 		this.length = length;
 	}
+	
+	@Override
+	public int hashCode() {
+		return key == null ? 237865 : key.hashCode();
+	}
 
+	@Override
+	public boolean equals(Object obj) {
+		if(obj == this) {
+			return true;
+		}
+		if(obj instanceof VideoMetaImpl) {
+			VideoMetaImpl meta = (VideoMetaImpl)obj;
+			return key != null && key.equals(meta.key);
+		}
+		return false;
+	}
 
-}
+	@Override
+	public boolean equalsByPersistableKey(Persistable persistable) {
+		return equals(persistable);
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/org/olat/modules/video/manager/VideoMetadataDAOTest.java b/src/test/java/org/olat/modules/video/manager/VideoMetadataDAOTest.java
index f43aaa38176..8ac3d7d76bd 100644
--- a/src/test/java/org/olat/modules/video/manager/VideoMetadataDAOTest.java
+++ b/src/test/java/org/olat/modules/video/manager/VideoMetadataDAOTest.java
@@ -43,26 +43,23 @@ public class VideoMetadataDAOTest extends OlatTestCase {
 	private DB dbInstance;
 	@Autowired
 	private VideoMetadataDAO videoMetadataDao;
-	
 		
 	@Test 
 	public void createVideoMetadata () {
-		RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
 		RepositoryEntry entry1 = JunitTestHelper.createAndPersistRepositoryEntry();
+		RepositoryEntry entry2 = JunitTestHelper.createAndPersistRepositoryEntry();
+		
 		//create metadata entries
-		VideoMeta meta = videoMetadataDao.createVideoMetadata(entry, 1500, "vid.mp4");
-		Assert.assertNotNull(meta);
-		VideoMeta meta1 = videoMetadataDao.createVideoMetadata(entry1, 5500, "vid.mov");
+		VideoMeta meta1 = videoMetadataDao.createVideoMetadata(entry1, 1500, "vid.mp4");
 		Assert.assertNotNull(meta1);
-		dbInstance.commitAndCloseSession();
-		//retrieve by olatresource
-		VideoMeta meta2 = videoMetadataDao.getVideoMetadata(entry.getOlatResource());
+		VideoMeta meta2 = videoMetadataDao.createVideoMetadata(entry2, 5500, "vid.mov");
 		Assert.assertNotNull(meta2);
-		Assert.assertTrue(meta2.getSize() == 1500);
-		//update value
-		meta2.setSize(2500);
-		Assert.assertTrue(meta2.getSize() == 2500);
 		dbInstance.commitAndCloseSession();
+		
+		//retrieve by olat resource
+		VideoMeta reloadMeta1 = videoMetadataDao.getVideoMetadata(entry1.getOlatResource());
+		Assert.assertNotNull(reloadMeta1);
+		Assert.assertEquals(1500, reloadMeta1.getSize());
 	}
 	
 	@Test
@@ -71,6 +68,7 @@ public class VideoMetadataDAOTest extends OlatTestCase {
 		RepositoryEntry entry1 = JunitTestHelper.createAndPersistRepositoryEntry();
 		RepositoryEntry entry2 = JunitTestHelper.createAndPersistRepositoryEntry();
 		RepositoryEntry entry3 = JunitTestHelper.createAndPersistRepositoryEntry();
+		
 		//create metadata entries
 		VideoMeta meta0 = videoMetadataDao.createVideoMetadata(entry0, 1500, "vid.mp4");
 		VideoMeta meta1 = videoMetadataDao.createVideoMetadata(entry1, 1100, "vide.mp4");
@@ -81,22 +79,27 @@ public class VideoMetadataDAOTest extends OlatTestCase {
 		Assert.assertNotNull(meta2);
 		Assert.assertNotNull(meta0);
 		dbInstance.commitAndCloseSession();
+		
 		//retrieve list of entries
 		List<VideoMetaImpl> metadata = videoMetadataDao.getAllVideoResourcesMetadata();
-		Assert.assertEquals(4, metadata.size());
-		dbInstance.commitAndCloseSession();
+		Assert.assertTrue(metadata.contains(meta0));
+		Assert.assertTrue(metadata.contains(meta1));
+		Assert.assertTrue(metadata.contains(meta2));
+		Assert.assertTrue(metadata.contains(meta3));
+
 		//delete entries
 		int deleted0 = videoMetadataDao.deleteVideoMetadata(entry0.getOlatResource());
-		int deleted1 = videoMetadataDao.deleteVideoMetadata(entry3.getOlatResource());
+		int deleted3 = videoMetadataDao.deleteVideoMetadata(entry3.getOlatResource());
 		Assert.assertEquals(1, deleted0);
-		Assert.assertNotEquals(0, deleted1);
+		Assert.assertNotEquals(0, deleted3);
 		dbInstance.commitAndCloseSession();
+		
 		//retrieve new list
-		List<VideoMetaImpl> metadata1 = videoMetadataDao.getAllVideoResourcesMetadata();
-		Assert.assertEquals(2, metadata1.size());
-		Assert.assertEquals("mov", metadata1.get(1).getFormat());
-		Assert.assertEquals(1100, metadata1.get(0).getSize());
-		dbInstance.commitAndCloseSession();
+		List<VideoMetaImpl> deleteMetadata = videoMetadataDao.getAllVideoResourcesMetadata();
+		Assert.assertFalse(deleteMetadata.contains(meta0));
+		Assert.assertTrue(deleteMetadata.contains(meta1));
+		Assert.assertTrue(deleteMetadata.contains(meta2));
+		Assert.assertFalse(deleteMetadata.contains(meta3));
 	}
 	
 }
diff --git a/src/test/java/org/olat/modules/video/manager/VideoTranscodingDAOTest.java b/src/test/java/org/olat/modules/video/manager/VideoTranscodingDAOTest.java
index 978d939fdb2..af04a38c16f 100644
--- a/src/test/java/org/olat/modules/video/manager/VideoTranscodingDAOTest.java
+++ b/src/test/java/org/olat/modules/video/manager/VideoTranscodingDAOTest.java
@@ -71,8 +71,8 @@ public class VideoTranscodingDAOTest extends OlatTestCase {
 		// check for overall pending transcodings
 		List<VideoTranscoding> vTranscodingList2 = videoTranscodingDao.getVideoTranscodingsPendingAndInProgress();
 		Assert.assertNotNull(vTranscodingList2);
-		Assert.assertEquals(1, vTranscodingList2.size());
-		Assert.assertEquals(vTranscoding, vTranscodingList2.get(0));
+		Assert.assertTrue(vTranscodingList2.size() >= 1);
+		Assert.assertTrue(vTranscodingList2.contains(vTranscoding));
 	}
 	
 	@Test
-- 
GitLab