Package ru.aristar.jnuget.sources.push

Source Code of ru.aristar.jnuget.sources.push.VersionPatternConstraintTriggerTest

package ru.aristar.jnuget.sources.push;

import org.jmock.Expectations;
import org.jmock.Mockery;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import ru.aristar.jnuget.Version;
import ru.aristar.jnuget.files.Nupkg;

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

    /**
     * Контекст создания заглушек
     */
    private Mockery context = new Mockery();
    /**
     * Идентификатор заглушки
     */
    private int mockId = 0;

    /**
     * Создает идентификатор фала пакета
     *
     * @param id идентификатор пакета
     * @param version версия пакета
     * @return идентификатор фала пакета
     * @throws Exception некорректный формат версии
     */
    private Nupkg createNupkg(final String id, final String version) throws Exception {
        final Nupkg pack = context.mock(Nupkg.class, "nupkg" + (mockId++));
        context.checking(new Expectations() {
            {
                atLeast(0).of(pack).getId();
                will(returnValue(id));
                atLeast(0).of(pack).getVersion();
                will(returnValue(Version.parse(version)));
            }
        });

        return pack;
    }

    /**
     * Проверка версий пакета соответствующих шаблону
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testAcceptVersion() throws Exception {
        //GIVEN
        VersionPatternConstraintTrigger strategy = new VersionPatternConstraintTrigger();
        //WHEN
        strategy.setPattern("^\\d+\\.\\d+\\.\\d*[02468].*$");
        //THEN
        assertTrue(strategy.doAction(createNupkg("A", "1.2.4.7"), null));
        assertTrue(strategy.doAction(createNupkg("A", "1.2.6.71"), null));
        assertTrue(strategy.doAction(createNupkg("A", "1.2.0.7654"), null));
        assertTrue(strategy.doAction(createNupkg("V", "1.7.0.AAAAA"), null));
    }

    /**
     * Проверка версий пакета не соответствующих шаблону
     *
     * @throws Exception ошибка в процессе теста
     */
    @Test
    public void testRejectedVersion() throws Exception {
        //GIVEN
        VersionPatternConstraintTrigger strategy = new VersionPatternConstraintTrigger();
        //WHEN
        strategy.setPattern("^\\d+\\.\\d+\\.\\d*[13579].*$");
        //THEN
        assertFalse(strategy.doAction(createNupkg("A", "1.2.4.7"), null));
        assertFalse(strategy.doAction(createNupkg("A", "1.2.6.71"), null));
        assertFalse(strategy.doAction(createNupkg("A", "1.2.0.7654"), null));
        assertFalse(strategy.doAction(createNupkg("V", "1.7.0.AAAAA"), null));
    }
}
TOP

Related Classes of ru.aristar.jnuget.sources.push.VersionPatternConstraintTriggerTest

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.