Package ru.aristar.jnuget.rss

Source Code of ru.aristar.jnuget.rss.EntryPropertiesTest

package ru.aristar.jnuget.rss;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
import org.junit.Test;
import ru.aristar.jnuget.Version;
import ru.aristar.jnuget.files.nuspec.Dependency;
import ru.aristar.jnuget.files.NugetFormatException;
import ru.aristar.jnuget.files.nuspec.NuspecFile;

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

    /**
     * Проверка преобразования файла спецификации в свойства вложения в RSS
     * сообщении
     *
     * @throws NugetFormatException данные в ресурсе не соответствуют формату
     * NuGet
     */
    @Test
    public void testConvertNuspecToEntryProperties() throws NugetFormatException {
        //GIVEN
        InputStream inputStream = this.getClass().getResourceAsStream("/nuspec/NUnit.nuspec.xml");
        NuspecFile nuspecFile = NuspecFile.Parse(inputStream);
        EntryProperties properties = new EntryProperties();
        //WHEN       
        properties.setNuspec(nuspecFile);
        //THEN
        assertEquals("Версия пакета", new Version(2, 5, 9, "10348"), properties.getVersion());
        assertEquals("Заголовок", "", properties.getTitle());
        assertEquals("URL иконки", "", properties.getIconUrl());
        assertEquals("URL лицензии", "", properties.getLicenseUrl());
        assertEquals("URL проекта", "", properties.getProjectUrl());
        assertEquals("URL отчета", "", properties.getReportAbuseUrl());
        assertEquals("Требуется лицензия", false, properties.getRequireLicenseAcceptance());
        assertEquals("Описание пакета", "Пакет модульного тестирования", properties.getDescription());
        assertEquals("Замечания крелизу", "", properties.getReleaseNotes());
        assertEquals("Язык", "", properties.getLanguage());
        assertEquals("Стоимость пакета", Double.valueOf(0), properties.getPrice());
        assertEquals("Зависимости пакета", "", properties.getDependencies());
        assertEquals("Внешний URI", "", properties.getExternalPackageUri());
        assertEquals("Категории", "", properties.getCategories());
        assertEquals("Права", "Copyright 2011", properties.getCopyright());
        assertEquals("Тип пакета", "", properties.getPackageType());
        assertArrayEquals("Теги пакета", new String[]{"Unit", "test"}, properties.getTags().toArray());
        assertEquals("Общее описание", "", properties.getSummary());
    }

    /**
     * Проверка генерации информации о пакете с зависимостями
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testConvertNuspecWithDependencies() throws Exception {
        //GIVEN
        InputStream inputStream = this.getClass().getResourceAsStream("/nuspec/Dependencies.nuspec.xml");
        NuspecFile nuspecFile = NuspecFile.Parse(inputStream);
        EntryProperties properties = new EntryProperties();
        //WHEN       
        properties.setNuspec(nuspecFile);
        //THEN
        assertEquals("Зависимости пакета", "NLog:2.0.0.2000", properties.getDependencies());
    }

    /**
     * Тест распознавания свойств пакета (RSS) из XML
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testParseProperties() throws Exception {
        //GIVEN
        InputStream inputStream = this.getClass().getResourceAsStream("/rss/entry/properties/NUnit.properties.xml");
        //WHEN
        EntryProperties entryProperties = EntryProperties.parse(inputStream);
        //THEN
        assertEquals("Версия пакета", "2.5.9.10348", entryProperties.getVersion().toString());
        assertEquals("Заголовок", "", entryProperties.getTitle());
        assertEquals("URL иконки", "", entryProperties.getIconUrl());
        assertEquals("URL лицензии", "", entryProperties.getLicenseUrl());
        assertEquals("URL проекта", "", entryProperties.getProjectUrl());
        assertEquals("URL отчета", "", entryProperties.getReportAbuseUrl());
        assertEquals("Количество загрузок пакета", Integer.valueOf(-1), entryProperties.getDownloadCount());
        assertEquals("Количество загрузок версий", Integer.valueOf(-1), entryProperties.getVersionDownloadCount());
        assertEquals("Рейтинг (количество)", Integer.valueOf(0), entryProperties.getRatingsCount());
        assertEquals("Рейтинг версии (количество)", Integer.valueOf(-1), entryProperties.getVersionRatingsCount());
        assertEquals("Рейтинг", Double.valueOf(-1), entryProperties.getRating());
        assertEquals("Рейтинг версии", Double.valueOf(-1), entryProperties.getVersionRating());
        assertEquals("Требуется лицензия", false, entryProperties.getRequireLicenseAcceptance());
        assertEquals("Описание пакета", "Пакет модульного тестирования", entryProperties.getDescription());
        assertEquals("Замечания крелизу", "", entryProperties.getReleaseNotes());
        assertEquals("Язык", "", entryProperties.getLanguage());
        assertEquals("Дата публикации пакета", javax.xml.bind.DatatypeConverter.parseDateTime("2011-09-23T05:18:55.5327281Z").getTime(), entryProperties.getPublished());
        assertEquals("Стоимость пакета", Double.valueOf(0), entryProperties.getPrice());
        assertEquals("Зависимости пакета", "", entryProperties.getDependencies());
        assertEquals("Хеш пакета", "CoknSJBGJ7kao2P6y9E9BuL1IkhP5LLhZ+ImtsgdxzFDpjs0QtRVOV8kxysakJu3cvw5O0hImcnVloCaQ9+Nmg==", entryProperties.getPackageHash());
        assertEquals("Размер пакета", Long.valueOf(214905), entryProperties.getPackageSize());
        assertEquals("Внешний URI", "", entryProperties.getExternalPackageUri());
        assertEquals("Категории", "", entryProperties.getCategories());
        assertEquals("Права", "", entryProperties.getCopyright());
        assertEquals("Тип пакета", "", entryProperties.getPackageType());
        assertArrayEquals("Теги пакета", new String[]{"Unit", "test"}, entryProperties.getTags().toArray());
        assertEquals("Это последняя версия", true, entryProperties.getIsLatestVersion());
        assertEquals("Общее описание", "", entryProperties.getSummary());
    }

    /**
     * Тест получения списка зависимостей, состоящего из одного элемента
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testGetDependenciesListFromOneElement() throws Exception {
        //GIVEN       
        EntryProperties properties = new EntryProperties();
        properties.setDependencies("A:1.2.3.4");
        //WHEN
        List<Dependency> result = properties.getDependenciesList();
        //THEN
        assertArrayEquals("Список зависимостей",
                new Dependency[]{Dependency.parseString("A:1.2.3.4")},
                result.toArray(new Dependency[0]));

    }

    /**
     * Тест получения списка зависимостей, состоящего из нескольких элементов
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testGetDependenciesList() throws Exception {
        //GIVEN       
        EntryProperties properties = new EntryProperties();
        properties.setDependencies("A:1.2.3.4|B:1.2.3.4");
        //WHEN
        List<Dependency> result = properties.getDependenciesList();
        //THEN
        assertArrayEquals("Список зависимостей",
                new Dependency[]{Dependency.parseString("A:1.2.3.4"),
                    Dependency.parseString("B:1.2.3.4")},
                result.toArray(new Dependency[0]));

    }

    /**
     * Тест получения списка зависимостей, состоящего из нескольких элементов
     * разделенных вертикальной чертой
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testGetDependenciesListPipeLinrSeparated() throws Exception {
        //GIVEN       
        EntryProperties properties = new EntryProperties();
        properties.setDependencies("adjunct-System.DataStructures.SparsePascalSet:2.2.0|"
                + "adjunct-XUnit.Should.BooleanExtensions:2.0.0|"
                + "adjunct-XUnit.Should.ObjectExtensions:2.0.0|"
                + "xunit:1.8.0.1549");
        //WHEN
        List<Dependency> result = properties.getDependenciesList();
        //THEN
        assertArrayEquals("Список зависимостей",
                new Dependency[]{
                    Dependency.parseString("adjunct-System.DataStructures.SparsePascalSet:2.2.0"),
                    Dependency.parseString("adjunct-XUnit.Should.BooleanExtensions:2.0.0"),
                    Dependency.parseString("adjunct-XUnit.Should.ObjectExtensions:2.0.0"),
                    Dependency.parseString("xunit:1.8.0.1549")
                },
                result.toArray(new Dependency[0]));

    }

    /**
     * Тест получения списка зависимостей, для некорректного списка зависимостей
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test(expected = NugetFormatException.class)
    public void testGetDependenciesListFromEmptyString() throws Exception {
        //GIVEN       
        EntryProperties properties = new EntryProperties();
        properties.setDependencies("eres");
        //WHEN
        properties.getDependenciesList();
    }

    /**
     * Проверка построения строки списка зависимостей
     *
     * @throws NugetFormatException строка зависимости или версия зависимости
     * имеют некорректный формат
     */
    @Test
    public void testSetDependenciesList() throws NugetFormatException {
        //GIVEN
        ArrayList<Dependency> dependencys = new ArrayList<>();
        dependencys.add(Dependency.parseString("package1:1.2.3"));
        dependencys.add(Dependency.parseString("package2:3.2.1"));
        EntryProperties properties = new EntryProperties();
        //WHEN
        properties.setDependenciesList(dependencys);
        //THEN
        assertThat(properties.getDependencies(), is(equalTo("package1:1.2.3, package2:3.2.1")));
    }
}
TOP

Related Classes of ru.aristar.jnuget.rss.EntryPropertiesTest

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.