Build tests and some related work.

This commit is contained in:
JesseBrault0709 2023-04-27 15:57:51 +02:00
parent 3d74a79088
commit bec9dcb234
4 changed files with 145 additions and 2 deletions

View File

@ -63,7 +63,7 @@ final class Build {
static Build concat(Build b0, Build b1) {
new Build(
b1.name.blank ? b0.name : b1.name,
b0.name.blank ? b1.name : b0.name,
OutputDirFunctions.concat(b0.outputDirFunction, b1.outputDirFunction),
SiteSpec.concat(b0.siteSpec, b1.siteSpec),
b0.globals + b1.globals,

View File

@ -12,7 +12,7 @@ final class OutputDirFunctions {
Function<Build, OutputDir> f0,
Function<Build, OutputDir> f1
) {
f1 == OutputDirFunctions.DEFAULT ? f0 : f1
f0 == OutputDirFunctions.DEFAULT ? f1 : f0
}
static Function<Build, OutputDir> of(File dir) {

View File

@ -4,6 +4,7 @@ import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck
import groovy.transform.TupleConstructor
import java.util.function.BiFunction
import java.util.function.Consumer
import java.util.function.Supplier

View File

@ -0,0 +1,142 @@
package com.jessebrault.ssg.buildscript
import com.jessebrault.ssg.SiteSpec
import com.jessebrault.ssg.task.TaskFactory
import com.jessebrault.ssg.task.TaskFactorySpec
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 java.util.function.Supplier
import static org.junit.jupiter.api.Assertions.assertEquals
@ExtendWith(MockitoExtension)
final class BuildTests {
@ExtendWith(MockitoExtension)
static final class AllBuildsTests {
@Test
void twoEmptiesEqual() {
def ab0 = Build.AllBuilds.getEmpty()
def ab1 = Build.AllBuilds.getEmpty()
assertEquals(ab0, ab1)
}
@Test
void siteSpecsAdded() {
def ab0 = new Build.AllBuilds(
new SiteSpec('test', ''),
[:],
[]
)
def ab1 = new Build.AllBuilds(
new SiteSpec('', 'test'),
[:],
[]
)
def sum = ab0 + ab1
assertEquals(new SiteSpec('test', 'test'), sum.siteSpec)
}
@Test
void globalsAdded() {
def ab0 = new Build.AllBuilds(
SiteSpec.getBlank(),
[a: 0],
[]
)
def ab1 = new Build.AllBuilds(
SiteSpec.getBlank(),
[b: 1],
[]
)
def sum = ab0 + ab1
assertEquals([a: 0, b: 1], sum.globals)
}
@Test
void taskFactorySpecsAdded(@Mock Supplier<TaskFactory> taskFactorySupplier) {
def spec0 = new TaskFactorySpec<>(taskFactorySupplier, [])
def spec1 = new TaskFactorySpec<>(taskFactorySupplier, [])
def ab0 = new Build.AllBuilds(
SiteSpec.getBlank(),
[:],
[spec0]
)
def ab1 = new Build.AllBuilds(
SiteSpec.getBlank(),
[:],
[spec1]
)
def sum = ab0 + ab1
assertEquals([spec0, spec1], sum.taskFactorySpecs)
}
}
@Test
void twoEmptiesEqual() {
def b0 = Build.getEmpty()
def b1 = Build.getEmpty()
assertEquals(b0, b1)
}
@Test
void ifName0BlankTakeName1() {
def b0 = Build.get(name: '')
def b1 = Build.get(name: 'test')
def sum = b0 + b1
assertEquals('test', sum.name)
}
@Test
void ifName0NotBlankTakeName0() {
def b0 = Build.get(name: 'b0')
def b1 = Build.get(name: 'b1')
def sum = b0 + b1
assertEquals('b0', sum.name)
}
@Test
void ifOutputDirFunction0DefaultTake1(@Mock Function<Build, OutputDir> b1OutputDirFunction) {
def b0 = Build.get(outputDirFunction: OutputDirFunctions.DEFAULT)
def b1 = Build.get(outputDirFunction: b1OutputDirFunction)
def sum = b0 + b1
assertEquals(b1OutputDirFunction, sum.outputDirFunction)
}
@Test
void siteSpecsAdded() {
def b0 = Build.get(
siteSpec: new SiteSpec('test', '')
)
def b1 = Build.get(
siteSpec: new SiteSpec('', 'test')
)
def sum = b0 + b1
assertEquals(new SiteSpec('test', 'test'), sum.siteSpec)
}
@Test
void globalsAdded() {
def b0 = Build.get(globals: [a: 0])
def b1 = Build.get(globals: [b: 1])
def sum = b0 + b1
assertEquals([a: 0, b: 1], sum.globals)
}
@Test
void taskFactorySpecsAdded(@Mock Supplier<TaskFactory> taskFactorySupplier) {
def spec0 = new TaskFactorySpec<>(taskFactorySupplier, [])
def spec1 = new TaskFactorySpec<>(taskFactorySupplier, [])
def b0 = Build.get(taskFactorySpecs: [spec0])
def b1 = Build.get(taskFactorySpecs: [spec1])
def sum = b0 + b1
assertEquals([spec0, spec1], sum.taskFactorySpecs)
}
}