Package ru.aristar.integration

Source Code of ru.aristar.integration.NugetClientTest

package ru.aristar.integration;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.nio.channels.Channels;
import org.apache.commons.io.FileUtils;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import org.junit.AfterClass;
import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import ru.aristar.jnuget.Version;
import ru.aristar.jnuget.client.NugetClient;
import ru.aristar.jnuget.files.Hash;
import ru.aristar.jnuget.files.TempNupkgFile;
import ru.aristar.jnuget.rss.PackageEntry;
import ru.aristar.jnuget.rss.PackageFeed;

/**
*
* @author sviridov
*/
public class NugetClientTest {

    /**
     * Каталог с пакетами
     */
    private static File packageFolder;
    /**
     * URL тестового хранилища
     */
    private static final String TEST_PACKAGESOURCE_URL = "http://localhost:8088/storages/DefaultSource/";

    /**
     * Инициализация настроек интеграционных тестов
     *
     * @throws IOException ошибка копирования файла
     */
    @BeforeClass
    public static void Setup() throws IOException {
        String homeFolderName = System.getProperty("nuget.home");
        if (homeFolderName == null) {
            homeFolderName = System.getProperty("user.dir") + "/target/WorkFolder/";
        }
        File testFolder = new File(homeFolderName);
        testFolder.mkdirs();
        packageFolder = new File(testFolder, "Packages");
        packageFolder.mkdirs();
        File packageFile = new File(packageFolder, "NUnit.2.5.9.10348.nupkg");
        try (InputStream inputStream = RssIntegrationTests.class.getResourceAsStream("/NUnit.2.5.9.10348.nupkg");
                FileOutputStream outputStream = new FileOutputStream(packageFile)) {
            TempNupkgFile.fastChannelCopy(Channels.newChannel(inputStream), outputStream.getChannel());
        }
    }

    /**
     * Удаление тестового каталога
     *
     * @throws IOException ошибка удаления тестового каталога
     */
    @AfterClass
    public static void TearDown() throws IOException {
        if (packageFolder != null && packageFolder.exists()) {
            FileUtils.deleteDirectory(packageFolder);
        }
    }

    /**
     * Получение потока с данными пакета
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testGetPackageStream() throws Exception {
        //GIVEN
        NugetClient nugetClient = new NugetClient();
        nugetClient.setUrl(TEST_PACKAGESOURCE_URL);
        //WHEN
        TempNupkgFile result = nugetClient.getPackage("NUnit", Version.parse("2.5.9.10348"));
        //THEN
        assertEquals("Идентификатор пакета", "NUnit", result.getId());
        assertEquals("Версия пакета", Version.parse("2.5.9.10348"), result.getVersion());
        assertEquals("HASH пакета", Hash.parse("kDPZtMu1BOZerHZvsbPnj7DfOdEyn/j4fanlv7BWuuVOZ0+VwuuxWzUnpD7jo7pkLjFOqIs41Vkk7abFZjPRJA=="), result.getHash());
    }

    /**
     * Получение списка пакетов
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testGetAllPackages() throws Exception {
        //GIVEN
        NugetClient nugetClient = new NugetClient();
        nugetClient.setUrl(TEST_PACKAGESOURCE_URL);
        //WHEN
        PackageFeed result = nugetClient.getPackages(null, null, null, null, null);
        //THEN
        assertEquals("Количество пакетов", 1, result.getEntries().size());
        PackageEntry entry = result.getEntries().get(0);
        assertThat("Версия пакета", entry.getProperties().getVersion(), is(equalTo(Version.parse("2.5.9.10348"))));
        assertThat("HASH пакета", entry.getProperties().getPackageHash(), is(equalTo("kDPZtMu1BOZerHZvsbPnj7DfOdEyn/j4fanlv7BWuuVOZ0+VwuuxWzUnpD7jo7pkLjFOqIs41Vkk7abFZjPRJA==")));
        assertThat("Идентификатор пакета", entry.getTitle(), is(equalTo("NUnit")));
    }

    /**
     * Проверка получения количества пакетов
     *
     * @throws IOException ошибка чтения из сокета
     * @throws URISyntaxException некорректный URI ресурса
     */
    @Test
    public void testGetPackageCount() throws IOException, URISyntaxException {
        //GIVEN
        NugetClient nugetClient = new NugetClient();
        nugetClient.setUrl(TEST_PACKAGESOURCE_URL);
        //WHEN
        int result = nugetClient.getPackageCount(false);
        //THEN
        assertThat(result, is(equalTo(1)));
    }

    /**
     * Проверка получения количества последних версий пакета (пакетов с
     * уникальными идентификаторами)
     *
     * @throws IOException ошибка чтения из сокета
     * @throws URISyntaxException некорректный URI ресурса
     */
    @Test
    public void testGetLastVersionPackageCount() throws IOException, URISyntaxException {
        //GIVEN
        NugetClient nugetClient = new NugetClient();
        nugetClient.setUrl(TEST_PACKAGESOURCE_URL);
        //WHEN
        int result = nugetClient.getPackageCount(true);
        //THEN
        assertThat(result, is(equalTo(1)));
    }
}
TOP

Related Classes of ru.aristar.integration.NugetClientTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.