/*- * #%L * jasmine-maven-plugin * %% * Copyright (C) 2010 - 2017 Justin Searls * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ package com.github.searls.jasmine.io; import org.junit.Test; import java.io.File; import java.io.IOException; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; public class RelativizesFilePathsTest { private RelativizesFilePaths subject = new RelativizesFilePaths(); private File from; private File to; @Test public void resolvesWithinDir() throws IOException { from = new File("/panda/"); to = new File("/panda/pants.txt"); String result = subject.relativize(from, to); assertThat(result, is("pants.txt")); } @Test public void resolvesSubDir() throws IOException { from = new File("/panda/"); to = new File("/panda/target/jasmine/"); String result = subject.relativize(from, to); assertThat(result, is("target/jasmine")); } @Test public void resolvesDeepChild() throws IOException { from = new File(slash("/Volumes/blah/Users/justin/code/workspaces/jasmine_maven/jasmine-maven-plugin/src/test/resources/examples/jasmine-webapp-coffee/target/jasmine")); to = new File(slash("/Volumes/blah/Users/justin/code/workspaces/jasmine_maven/jasmine-maven-plugin/src/test/resources/examples/jasmine-webapp-coffee/src/test/javascript/fun-spec.js")); String result = subject.relativize(from, to); assertThat(result, is("../../src/test/javascript/fun-spec.js")); } private String slash(String s) { return s.replace('/', File.separatorChar); } }