BuildScriptBaseTests begun and related work.
This commit is contained in:
parent
9559b53003
commit
3803b26c04
@ -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
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user