UrlBuilder now has absolute method.

This commit is contained in:
Jesse Brault 2023-02-15 15:37:30 +01:00
parent 2d00c6be2e
commit 0762dc6b8b
4 changed files with 21 additions and 5 deletions

View File

@ -4,10 +4,12 @@ import java.nio.file.Path
class PathBasedUrlBuilder implements UrlBuilder { class PathBasedUrlBuilder implements UrlBuilder {
private final String absolute
private final Path fromDirectory private final Path fromDirectory
PathBasedUrlBuilder(String fromFile) { PathBasedUrlBuilder(String absolute) {
def fromFilePath = Path.of(fromFile) this.absolute = absolute
def fromFilePath = Path.of(absolute)
if (fromFilePath.parent) { if (fromFilePath.parent) {
this.fromDirectory = fromFilePath.parent this.fromDirectory = fromFilePath.parent
} else { } else {
@ -15,6 +17,11 @@ class PathBasedUrlBuilder implements UrlBuilder {
} }
} }
@Override
String getAbsolute() {
this.absolute
}
@Override @Override
String relative(String to) { String relative(String to) {
this.fromDirectory.relativize(Path.of(to)).toString() this.fromDirectory.relativize(Path.of(to)).toString()

View File

@ -1,5 +1,6 @@
package com.jessebrault.ssg.url package com.jessebrault.ssg.url
interface UrlBuilder { interface UrlBuilder {
String getAbsolute()
String relative(String to) String relative(String to)
} }

View File

@ -3,8 +3,8 @@ package com.jessebrault.ssg.url
class PathBasedUrlBuilderTests extends AbstractUrlBuilderTests { class PathBasedUrlBuilderTests extends AbstractUrlBuilderTests {
@Override @Override
protected UrlBuilder getUrlBuilder(String fromFile) { protected UrlBuilder getUrlBuilder(String targetPath) {
new PathBasedUrlBuilder(fromFile) new PathBasedUrlBuilder(targetPath)
} }
} }

View File

@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals
abstract class AbstractUrlBuilderTests { abstract class AbstractUrlBuilderTests {
protected abstract UrlBuilder getUrlBuilder(String fromFile); protected abstract UrlBuilder getUrlBuilder(String targetPath);
@Test @Test
void upDownDown() { void upDownDown() {
@ -30,4 +30,12 @@ abstract class AbstractUrlBuilderTests {
) )
} }
@Test
void absoluteMatchesTargetPath() {
assertEquals(
'test/test.html',
this.getUrlBuilder('test/test.html').absolute
)
}
} }