Package org.jfrog.build.util

Source Code of org.jfrog.build.util.PatternFactoryTest

package org.jfrog.build.util;

import org.jfrog.build.api.dependency.pattern.BuildDependencyPattern;
import org.jfrog.build.api.dependency.pattern.DependencyPattern;
import org.jfrog.build.api.dependency.pattern.PatternType;
import org.testng.annotations.Test;

import static org.testng.Assert.*;

/**
* @author Shay Yaakov
*/
@Test
public class PatternFactoryTest {

    public void testDependencies() throws Exception {
        DependencyPattern dependencyPattern = PatternFactory.create("win-demo:*/*/*.dll;type+=32;OS+=win-7=>property");
        assertDependency(dependencyPattern, "win-demo:*/*/*.dll", "type+=32;OS+=win-7", "property", PatternType.NORMAL);

        dependencyPattern = PatternFactory.create("win-demo:**/*;type+=64;OS+=win-7=>starstar");
        assertDependency(dependencyPattern, "win-demo:**/*", "type+=64;OS+=win-7", "starstar", PatternType.NORMAL);

        dependencyPattern = PatternFactory.create("repo:win-7/**/*;OS+=win-7;type+=64=>path/deep");
        assertDependency(dependencyPattern, "repo:win-7/**/*", "OS+=win-7;type+=64", "path/deep", PatternType.NORMAL);

        dependencyPattern = PatternFactory.create("win-demo:*/*/*.dll=>all");
        assertDependency(dependencyPattern, "win-demo:*/*/*.dll", "", "all", PatternType.NORMAL);

        dependencyPattern = PatternFactory.create("repo:*/*/*.*;type=32;type=64=>all-withproperty");
        assertDependency(dependencyPattern, "repo:*/*/*.*", "type=32;type=64", "all-withproperty", PatternType.NORMAL);

        dependencyPattern = PatternFactory.create("win-demo:*/*/*.*;type=32;OS=linux");
        assertDependency(dependencyPattern, "win-demo:*/*/*.*", "type=32;OS=linux", "", PatternType.NORMAL);

        dependencyPattern = PatternFactory.create("win-demo:*/*/*.*;type=32;OS=linux=!>test\\sep");
        assertDependency(dependencyPattern, "win-demo:*/*/*.*", "type=32;OS=linux", "test/sep", PatternType.DELETE);

        dependencyPattern = PatternFactory.create("win-demo:**/*.*=!>");
        assertDependency(dependencyPattern, "win-demo:**/*.*", "", "", PatternType.DELETE);
    }

    public void testBuildDependencies() throws Exception {
        DependencyPattern pattern = PatternFactory.create("repo:**/*;a=1;b+=2@build#13=>relative\\path");
        assertBuildDependency(pattern, "repo:**/*", "a=1;b+=2", "relative/path", PatternType.NORMAL, "build", "13");

        pattern = PatternFactory.create("repo:**/*;c+=4;@build#13=>");
        assertBuildDependency(pattern, "repo:**/*", "c+=4;", "", PatternType.NORMAL, "build", "13");

        pattern = PatternFactory.create("repo:*/*/*/*.jar@build-name#13=>path");
        assertBuildDependency(pattern, "repo:*/*/*/*.jar", "", "path", PatternType.NORMAL, "build-name", "13");

        pattern = PatternFactory.create("repo:*/*.jar@build-name#10=!>path");
        assertBuildDependency(pattern, "repo:*/*.jar", "", "path", PatternType.DELETE, "build-name", "10");

        pattern = PatternFactory.create("repo:*/*.jar;a+=a;b=b@build#11=!>");
        assertBuildDependency(pattern, "repo:*/*.jar", "a+=a;b=b", "", PatternType.DELETE, "build", "11");

        pattern = PatternFactory.create("repo:*/*.jar@build#11=!>");
        assertBuildDependency(pattern, "repo:*/*.jar", "", "", PatternType.DELETE, "build", "11");
    }

    private void assertDependency(DependencyPattern result, String pattern, String matrixParams, String targetDir,
            PatternType patternType) {
        assertFalse(result instanceof BuildDependencyPattern, "Expected a dependency instance");
        assertCommonsFields(result, pattern, matrixParams, targetDir, patternType);
    }

    private void assertBuildDependency(DependencyPattern result, String pattern, String matrixParams,
            String targetDir, PatternType patternType, String buildName, String buildNumber) {
        assertTrue(result instanceof BuildDependencyPattern, "Expected a build dependency instance");
        assertCommonsFields(result, pattern, matrixParams, targetDir, patternType);
        assertEquals(((BuildDependencyPattern) result).getBuildName(), buildName, "Unexpected build name");
        assertEquals(((BuildDependencyPattern) result).getBuildNumber(), buildNumber, "Unexpected number");
    }

    private void assertCommonsFields(DependencyPattern result, String pattern, String matrixParams, String targetDir,
            PatternType patternType) {
        assertEquals(result.getPattern(), pattern, "Unexpected pattern");
        assertEquals(result.getMatrixParams(), matrixParams, "Unexpected matrix params");
        assertEquals(result.getTargetDirectory(), targetDir, "Unexpected target directory");
        assertEquals(result.getPatternType(), patternType, "Unexpected pattern type");
    }
}
TOP

Related Classes of org.jfrog.build.util.PatternFactoryTest

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.