Fixing more task-related bugs.
This commit is contained in:
parent
ee98482e7e
commit
6cd1a68644
@ -2,6 +2,7 @@ package com.jessebrault.ssg.dsl
|
||||
|
||||
import com.jessebrault.ssg.part.EmbeddablePartsMap
|
||||
import com.jessebrault.ssg.renderer.RenderContext
|
||||
import com.jessebrault.ssg.tagbuilder.DynamicTagBuilder
|
||||
import com.jessebrault.ssg.text.EmbeddableText
|
||||
import com.jessebrault.ssg.text.EmbeddableTextsCollection
|
||||
import com.jessebrault.ssg.text.Text
|
||||
@ -57,8 +58,10 @@ final class StandardDslMap {
|
||||
)
|
||||
it.siteSpec = context.siteSpec
|
||||
it.sourcePath = context.sourcePath
|
||||
it.tagBuilder = new DynamicTagBuilder()
|
||||
it.targetPath = context.targetPath
|
||||
it.tasks = context.tasks
|
||||
it.taskTypes = context.taskTypes
|
||||
it.text = b.text ? new EmbeddableText(
|
||||
b.text,
|
||||
context.globals,
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.jessebrault.ssg.task
|
||||
|
||||
interface Task {
|
||||
TaskType<? extends Task> getType()
|
||||
String getName()
|
||||
void execute(TaskExecutorContext context)
|
||||
}
|
@ -14,10 +14,10 @@ class TaskCollection<T extends Task> {
|
||||
}
|
||||
|
||||
def <U extends T> TaskCollection<U> findAllByType(
|
||||
Class<U> taskClass
|
||||
TaskType<U> taskType
|
||||
) {
|
||||
new TaskCollection<>(this.tasks.findResults {
|
||||
taskClass.isAssignableFrom(it.class) ? taskClass.cast(it) : null
|
||||
it.type == taskType ? it : null
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -76,9 +76,9 @@ class SimpleStaticSiteGeneratorIntegrationTests {
|
||||
def tasks = result.get()
|
||||
assertTrue(tasks.size() == 1)
|
||||
|
||||
def t0 = tasks.findAllByType(TextToHtmlFileTask)[0]
|
||||
def t0 = tasks.findAllByType(TextToHtmlFileTask.TYPE)[0]
|
||||
assertEquals('test.html', t0.output.htmlPath)
|
||||
def contentResult = t0.output.getContent(tasks, new TaskTypeContainer([TextToHtmlFileTask])) { Collection<Diagnostic> diagnostics ->
|
||||
def contentResult = t0.output.getContent(tasks, new TaskTypeContainer([TextToHtmlFileTask.TYPE])) { Collection<Diagnostic> diagnostics ->
|
||||
fail(getDiagnosticsMessageSupplier(diagnostics))
|
||||
}
|
||||
assertEquals('<p><strong>Hello, World!</strong></p>\n', contentResult)
|
||||
@ -100,11 +100,11 @@ class SimpleStaticSiteGeneratorIntegrationTests {
|
||||
def tasks = result.get()
|
||||
assertTrue(tasks.size() == 1)
|
||||
|
||||
def t0 = tasks.findAllByType(TextToHtmlFileTask)[0]
|
||||
def t0 = tasks.findAllByType(TextToHtmlFileTask.TYPE)[0]
|
||||
assertEquals('nested/nested.html', t0.output.htmlPath)
|
||||
def contentResult = t0.output.getContent(
|
||||
tasks,
|
||||
new TaskTypeContainer([TextToHtmlFileTask])
|
||||
new TaskTypeContainer([TextToHtmlFileTask.TYPE])
|
||||
) { Collection<Diagnostic> diagnostics ->
|
||||
fail(getDiagnosticsMessageSupplier(diagnostics))
|
||||
}
|
||||
@ -124,9 +124,9 @@ class SimpleStaticSiteGeneratorIntegrationTests {
|
||||
def tasks = result.get()
|
||||
assertEquals(2, tasks.size())
|
||||
|
||||
def taskTypes = new TaskTypeContainer([TextToHtmlFileTask, SpecialPageToHtmlFileTask])
|
||||
def taskTypes = new TaskTypeContainer([TextToHtmlFileTask.TYPE, SpecialPageToHtmlFileTask.TYPE])
|
||||
|
||||
def testPageTask = tasks.findAllByType(TextToHtmlFileTask).find {
|
||||
def testPageTask = tasks.findAllByType(TextToHtmlFileTask.TYPE).find {
|
||||
it.output.htmlPath == 'test.html'
|
||||
}
|
||||
assertNotNull(testPageTask)
|
||||
@ -135,7 +135,7 @@ class SimpleStaticSiteGeneratorIntegrationTests {
|
||||
}
|
||||
assertEquals('2', testPageContent)
|
||||
|
||||
def specialPageTask = tasks.findAllByType(SpecialPageToHtmlFileTask).find {
|
||||
def specialPageTask = tasks.findAllByType(SpecialPageToHtmlFileTask.TYPE).find {
|
||||
it.output.htmlPath == 'special.html'
|
||||
}
|
||||
assertNotNull(specialPageTask)
|
||||
|
@ -9,11 +9,14 @@ import com.jessebrault.ssg.part.PartType
|
||||
import com.jessebrault.ssg.renderer.RenderContext
|
||||
import com.jessebrault.ssg.tagbuilder.TagBuilder
|
||||
import com.jessebrault.ssg.task.HtmlFileOutput
|
||||
import com.jessebrault.ssg.task.SpecialPageToHtmlFileTask
|
||||
import com.jessebrault.ssg.task.TaskContainer
|
||||
import com.jessebrault.ssg.task.TaskTypeContainer
|
||||
import com.jessebrault.ssg.task.TextToHtmlFileTask
|
||||
import com.jessebrault.ssg.task.TextToHtmlFileTaskFactory
|
||||
import com.jessebrault.ssg.text.EmbeddableTextsCollection
|
||||
import com.jessebrault.ssg.url.UrlBuilder
|
||||
import net.bytebuddy.implementation.bytecode.Throw
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.extension.ExtendWith
|
||||
import org.mockito.Mock
|
||||
@ -49,11 +52,13 @@ interface StandardDslConsumerTests {
|
||||
}
|
||||
|
||||
default void doDslAssertionTest(String scriptlet, RenderContext context = null) {
|
||||
Tuple2<Collection<Diagnostic>, String> result = null
|
||||
try {
|
||||
this.render(scriptlet, context ?: getRenderContext())
|
||||
} catch (AssertionError e) {
|
||||
result = this.render(scriptlet, context ?: getRenderContext())
|
||||
} catch (Throwable e) {
|
||||
fail(e)
|
||||
}
|
||||
assertEmptyDiagnostics(result)
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -133,7 +138,7 @@ interface StandardDslConsumerTests {
|
||||
|
||||
@Test
|
||||
default void tagBuilderAvailable() {
|
||||
this.doDslAssertionTest("<% assert tagBuider && tagBuilder instanceof ${ TagBuilder.name } %>")
|
||||
this.doDslAssertionTest("<% assert tagBuilder && tagBuilder instanceof ${ TagBuilder.name } %>")
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -172,7 +177,10 @@ interface StandardDslConsumerTests {
|
||||
this.doDslRenderTest(
|
||||
'test.html',
|
||||
'<%= tasks.find { it.name == "testTask" }.output.htmlPath %>',
|
||||
getRenderContext(tasks: new TaskContainer([task]))
|
||||
getRenderContext(
|
||||
tasks: new TaskContainer([task]),
|
||||
taskTypes: new TaskTypeContainer([TextToHtmlFileTask.TYPE])
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@ -191,7 +199,10 @@ interface StandardDslConsumerTests {
|
||||
'<% assert tasks.size() == 2 && ' +
|
||||
'tasks.findAllByType(taskTypes.textToHtmlFile).size() == 1 &&' +
|
||||
'tasks.findAllByType(taskTypes.specialPageToHtmlFile).size() == 1 %>',
|
||||
getRenderContext(tasks: new TaskContainer([t0, t1]))
|
||||
getRenderContext(
|
||||
tasks: new TaskContainer([t0, t1]),
|
||||
taskTypes: new TaskTypeContainer([TextToHtmlFileTask.TYPE, SpecialPageToHtmlFileTask.TYPE])
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user