BuildScriptBaseTests begun and related work.

This commit is contained in:
JesseBrault0709 2023-04-30 06:49:54 +02:00
parent 9559b53003
commit 3803b26c04
3 changed files with 149 additions and 6 deletions

View File

@ -15,8 +15,8 @@ final class SiteSpec {
static SiteSpec concat(SiteSpec s0, SiteSpec s1) {
new SiteSpec(
s0.name.blank ? s1.name : s0.name,
s0.baseUrl.blank ? s1.baseUrl : s0.baseUrl
s1.name.blank ? s0.name : s1.name,
s1.baseUrl.blank ? s0.baseUrl : s1.baseUrl
)
}

View File

@ -15,11 +15,11 @@ final class SiteSpecTests {
}
@Test
void ifName0NotBlankThenName0() {
void ifName1NotBlankThenName1() {
def ss0 = new SiteSpec('ss0', '')
def ss1 = new SiteSpec('ss1', '')
def sum = ss0 + ss1
assertEquals('ss0', sum.name)
assertEquals('ss1', sum.name)
}
@Test
@ -31,11 +31,11 @@ final class SiteSpecTests {
}
@Test
void ifBaseUrl0NotBlankThenBaseUrl0() {
void ifBaseUrl1NotBlankThenBaseUrl1() {
def ss0 = new SiteSpec('', 'ss0')
def ss1 = new SiteSpec('', 'ss1')
def sum = ss0 + ss1
assertEquals('ss0', sum.baseUrl)
assertEquals('ss1', sum.baseUrl)
}
}

View File

@ -0,0 +1,143 @@
package com.jessebrault.ssg.buildscript
import com.jessebrault.ssg.SiteSpec
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.Mock
import org.mockito.junit.jupiter.MockitoExtension
import java.util.function.Function
import static org.junit.jupiter.api.Assertions.assertEquals
@ExtendWith(MockitoExtension)
final class BuildScriptBaseTests {
private static Collection<Build> scriptToBuilds(
@DelegatesTo(value = BuildScriptBase, strategy = Closure.DELEGATE_FIRST)
Closure<?> script
) {
def s = new BuildScriptBase() {
@Override
Object run() {
script.delegate = this
script.resolveStrategy = Closure.DELEGATE_FIRST
script()
}
}
s.run()
s.getBuilds()
}
@Test
void oneBuildWithName0() {
def r = scriptToBuilds {
build('test') { }
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals('test', b0.name)
}
@Test
void oneBuildWithName1() {
def r = scriptToBuilds {
build {
name = 'test'
}
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals('test', b0.name)
}
@Test
void oneBuildOutputDirWithFunction(@Mock Function<Build, OutputDir> mockOutputDirFunction) {
def r = scriptToBuilds {
build {
outputDirFunction = mockOutputDirFunction
}
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals(mockOutputDirFunction, b0.outputDirFunction)
}
@Test
void oneBuildOutputDirWithFile() {
def f = new File('test')
def r = scriptToBuilds {
build {
outputDir = f
}
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals(f, b0.outputDirFunction.apply(b0).asFile())
}
@Test
void oneBuildOutputDirWithString() {
def r = scriptToBuilds {
build {
outputDir = 'test'
}
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals('test', b0.outputDirFunction.apply(b0).path)
}
@Test
void oneBuildSiteSpec() {
def r = scriptToBuilds {
build {
siteSpec {
name = 'testSite'
baseUrl = 'https://testsite.com'
}
}
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals(new SiteSpec('testSite', 'https://testsite.com'), b0.siteSpec)
}
@Test
void allBuildsProvidesSiteSpec() {
def r = scriptToBuilds {
allBuilds {
siteSpec {
name = 'testSite'
baseUrl = 'https://testsite.com'
}
}
build('test') { }
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals(new SiteSpec('testSite', 'https://testsite.com'), b0.siteSpec)
}
@Test
void allBuildsSiteSpecOverwritten() {
def r = scriptToBuilds {
allBuilds {
siteSpec {
name = 'no'
}
}
build {
siteSpec {
name = 'yes'
}
}
}
assertEquals(1, r.size())
def b0 = r[0]
assertEquals(new SiteSpec('yes', ''), b0.siteSpec)
}
}