Package ru.aristar.jnuget.rss

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

package ru.aristar.jnuget.rss;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import org.jmock.Expectations;
import static org.jmock.Expectations.returnValue;
import org.jmock.Mockery;
import org.jmock.lib.legacy.ClassImposteriser;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertThat;
import org.junit.Test;

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

    /**
     * Контекст заглушек
     */
    private Mockery context = new Mockery() {

        {
            setImposteriser(ClassImposteriser.INSTANCE);
        }
    };

    /**
     * @param dateTimeString строка даты/времени
     * @return значение даты/времени
     * @throws ParseException строка имеет некорректный формат
     */
    private Date createDate(String dateTimeString) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
        return simpleDateFormat.parse(dateTimeString);
    }

    /**
     * Проверка сравнения двух пакетов с различными датами обновления
     *
     * @throws ParseException строка даты/времени, использующаяся в тестах имеет
     * некорректный формат
     */
    @Test
    public void testCompare() throws ParseException {
        //GIVEN
        Expectations expectations = new Expectations();
        PackageEntry firstEntry = context.mock(PackageEntry.class, "firstEntry");
        expectations.atLeast(0).of(firstEntry).getUpdated();
        expectations.will(returnValue(createDate("2012.04.27 15:30:00")));
        PackageEntry secondEntry = context.mock(PackageEntry.class, "secondEntry");
        expectations.atLeast(0).of(secondEntry).getUpdated();
        expectations.will(returnValue(createDate("2012.04.27 15:40:00")));
        context.checking(expectations);
        PackageUpdateDateDescComparator instance = new PackageUpdateDateDescComparator();
        //WHEN
        int result = instance.compare(firstEntry, secondEntry);
        //THEN
        assertThat("Результат сравнения пактов", result, is(equalTo(1)));
    }

    /**
     * Проверка сортировки массива пакетов по дате создания
     *
     * @throws ParseException строка даты/времени, использующаяся в тестах имеет
     * некорректный формат
     */
    @Test
    public void testArraySort() throws ParseException {
        //GIVEN
        Expectations expectations = new Expectations();
        PackageEntry firstEntry = context.mock(PackageEntry.class, "firstEntry");
        expectations.atLeast(0).of(firstEntry).getUpdated();
        expectations.will(returnValue(createDate("2012.04.27 15:30:00")));
        PackageEntry secondEntry = context.mock(PackageEntry.class, "secondEntry");
        expectations.atLeast(0).of(secondEntry).getUpdated();
        expectations.will(returnValue(createDate("2012.04.27 15:40:00")));
        context.checking(expectations);
        PackageEntry[] entrys = new PackageEntry[]{firstEntry, secondEntry};
        PackageUpdateDateDescComparator instance = new PackageUpdateDateDescComparator();
        //WHEN
        Arrays.sort(entrys, instance);
        //THEN
        assertArrayEquals("Результат сортировки пакетов", new PackageEntry[]{secondEntry, firstEntry}, entrys);
    }
}
TOP

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

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.