Commit 7ba05398 authored by nfcalabria's avatar nfcalabria
Browse files

Added stub for CopyController test

parent 5a003e9c
Loading
Loading
Loading
Loading
+100 −0
Original line number Diff line number Diff line
/*
 * This file is part of vospace-file-service
 * Copyright (C) 2021 Istituto Nazionale di Astrofisica
 * SPDX-License-Identifier: GPL-3.0-or-later
 */
package it.inaf.ia2.transfer.controller;

import it.inaf.ia2.transfer.persistence.model.FileInfo;
import it.inaf.ia2.transfer.persistence.FileDAO;
import it.inaf.ia2.transfer.persistence.JobDAO;
import it.inaf.oats.vospace.exception.QuotaExceededException;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.Optional;
import java.util.UUID;
import javax.servlet.ServletInputStream;
import net.ivoa.xml.uws.v1.ExecutionPhase;
import org.assertj.core.util.Files;
import org.junit.jupiter.api.AfterAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import org.mockito.Mockito;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.request.RequestPostProcessor;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.springframework.util.FileSystemUtils;

@SpringBootTest
@AutoConfigureMockMvc
public class CopyControllerTest {

    @MockBean
    private FileDAO fileDao;

    @MockBean
    private JobDAO jobDAO;

    @Autowired
    private MockMvc mockMvc;

    private static File sourceDirectory;
    private static File destinationDirectory;

    @BeforeAll
    public static void setUp() {
        sourceDirectory = Files.newTemporaryFolder();
        destinationDirectory = Files.newTemporaryFolder();
    }

    @AfterAll
    public static void tearDown() {
        FileSystemUtils.deleteRecursively(sourceDirectory);
        FileSystemUtils.deleteRecursively(destinationDirectory);
    }

    // TODO: complete test

    private FileInfo createBaseFileInfo() {
        String randomFileName = UUID.randomUUID().toString();
        return createBaseFileInfo(randomFileName);
    }
    
    private FileInfo createBaseFileInfo(String fileName, File directory, String vosPath) {        
        FileInfo fileInfo = new FileInfo();
        fileInfo.setOsPath(getTestFilePath(fileName, directory));
        String virtualPath = vosPath + "/" + fileName;
        fileInfo.setVirtualPath(vosPath + "/" + fileName);
        fileInfo.setPublic(false);
                       
        return fileInfo;
    }

    private String getTestFilePath(String fileName, File directory) {
        return directory.toPath().resolve("subdir").resolve(fileName).toFile().getAbsolutePath();
    }

}