| 
							
							
							
						 |  |  | @ -0,0 +1,75 @@ | 
		
	
		
			
				|  |  |  |  | package ovh.herisson.Clyde.Services; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | import org.junit.Assert; | 
		
	
		
			
				|  |  |  |  | import org.junit.Before; | 
		
	
		
			
				|  |  |  |  | import org.junit.jupiter.api.BeforeEach; | 
		
	
		
			
				|  |  |  |  | import org.junit.jupiter.api.Test; | 
		
	
		
			
				|  |  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
		
	
		
			
				|  |  |  |  | import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; | 
		
	
		
			
				|  |  |  |  | import org.springframework.mock.web.MockMultipartFile; | 
		
	
		
			
				|  |  |  |  | import org.springframework.test.context.TestPropertySource; | 
		
	
		
			
				|  |  |  |  | import org.springframework.web.multipart.MultipartFile; | 
		
	
		
			
				|  |  |  |  | import org.testcontainers.shaded.com.google.common.net.MediaType; | 
		
	
		
			
				|  |  |  |  | import ovh.herisson.Clyde.Repositories.FileRepository; | 
		
	
		
			
				|  |  |  |  | import ovh.herisson.Clyde.Tables.FileType; | 
		
	
		
			
				|  |  |  |  | import ovh.herisson.Clyde.Tables.StorageFile; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | import java.io.File; | 
		
	
		
			
				|  |  |  |  | import java.io.IOException; | 
		
	
		
			
				|  |  |  |  | import java.nio.file.Files; | 
		
	
		
			
				|  |  |  |  | import java.nio.file.Path; | 
		
	
		
			
				|  |  |  |  | import java.nio.file.Paths; | 
		
	
		
			
				|  |  |  |  | import java.util.ArrayList; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | @DataJpaTest | 
		
	
		
			
				|  |  |  |  | @TestPropertySource(properties = { | 
		
	
		
			
				|  |  |  |  |         "spring.test.database.replace=none", | 
		
	
		
			
				|  |  |  |  |         "spring.datasource.url=jdbc:tc:postgresql:16-alpine:///db" | 
		
	
		
			
				|  |  |  |  | }) | 
		
	
		
			
				|  |  |  |  | public class StorageServiceTest { | 
		
	
		
			
				|  |  |  |  |     @Autowired | 
		
	
		
			
				|  |  |  |  |     FileRepository fileRepo; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     StorageService ss; | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     @BeforeEach | 
		
	
		
			
				|  |  |  |  |     public void setup(){ | 
		
	
		
			
				|  |  |  |  |         if (ss == null){ | 
		
	
		
			
				|  |  |  |  |             ss = new StorageService(fileRepo); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     @Test | 
		
	
		
			
				|  |  |  |  |     //Check si le fichier est bien sauvegardé dans la DB et si le fichier est bien sauvegardé au bon endroit | 
		
	
		
			
				|  |  |  |  |     public void saveFile(){ | 
		
	
		
			
				|  |  |  |  |         //Test si le directory a bien été crée a l'init du fileService | 
		
	
		
			
				|  |  |  |  |         Path rootloc = Paths.get("cdn/"); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         Assert.assertTrue(Files.exists(rootloc)); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     @Test | 
		
	
		
			
				|  |  |  |  |     public void deleteFile() throws IOException { | 
		
	
		
			
				|  |  |  |  |         File file = new File("cdn/test.txt"); | 
		
	
		
			
				|  |  |  |  |         file.createNewFile(); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         //On vérifie que le fichier a bien été crée | 
		
	
		
			
				|  |  |  |  |         Assert.assertTrue(file.exists()); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         //StorageFile représentant le fichier | 
		
	
		
			
				|  |  |  |  |         StorageFile sf = new StorageFile("testfile",file.getPath(), FileType.ProfilePicture); | 
		
	
		
			
				|  |  |  |  |         fileRepo.save(sf); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         //Check that the storagefile is properly saved | 
		
	
		
			
				|  |  |  |  |         StorageFile resp = fileRepo.getStorageFileByName("testfile"); | 
		
	
		
			
				|  |  |  |  |         Assert.assertEquals(sf, resp); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         ss.delete(sf); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         //On vérifie que le fichier a bien été delete et que le StorageFile a été delete de la DB | 
		
	
		
			
				|  |  |  |  |         Assert.assertFalse(file.exists()); | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         resp = fileRepo.getStorageFileByName("testfile"); | 
		
	
		
			
				|  |  |  |  |         Assert.assertEquals(null, resp); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | } |