Better testing with Mockito.
This commit is contained in:
parent
9d3f3f180b
commit
92515785a0
@ -31,6 +31,15 @@ dependencies {
|
|||||||
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine
|
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine
|
||||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mockito
|
||||||
|
*/
|
||||||
|
// https://mvnrepository.com/artifact/org.mockito/mockito-core
|
||||||
|
testImplementation 'org.mockito:mockito-core:4.11.0'
|
||||||
|
|
||||||
|
// https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter
|
||||||
|
testImplementation 'org.mockito:mockito-junit-jupiter:4.11.0'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test Logging
|
* Test Logging
|
||||||
*/
|
*/
|
||||||
|
@ -1,16 +1,23 @@
|
|||||||
package com.jessebrault.ssg.specialpage
|
package com.jessebrault.ssg.specialpage
|
||||||
|
|
||||||
import com.jessebrault.ssg.part.GspPartRenderer
|
|
||||||
import com.jessebrault.ssg.part.Part
|
import com.jessebrault.ssg.part.Part
|
||||||
|
import com.jessebrault.ssg.part.PartRenderer
|
||||||
import com.jessebrault.ssg.part.PartType
|
import com.jessebrault.ssg.part.PartType
|
||||||
import com.jessebrault.ssg.text.MarkdownFrontMatterGetter
|
import com.jessebrault.ssg.text.FrontMatterGetter
|
||||||
import com.jessebrault.ssg.text.MarkdownTextRenderer
|
|
||||||
import com.jessebrault.ssg.text.Text
|
import com.jessebrault.ssg.text.Text
|
||||||
|
import com.jessebrault.ssg.text.TextRenderer
|
||||||
import com.jessebrault.ssg.text.TextType
|
import com.jessebrault.ssg.text.TextType
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith
|
||||||
|
import org.mockito.Mock
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals
|
import static org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import static org.mockito.ArgumentMatchers.any
|
||||||
|
import static org.mockito.ArgumentMatchers.argThat
|
||||||
|
import static org.mockito.Mockito.when
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension)
|
||||||
class GspSpecialPageRendererTests {
|
class GspSpecialPageRendererTests {
|
||||||
|
|
||||||
private final SpecialPageRenderer renderer = new GspSpecialPageRenderer()
|
private final SpecialPageRenderer renderer = new GspSpecialPageRenderer()
|
||||||
@ -23,22 +30,31 @@ class GspSpecialPageRendererTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void rendersPartWithNoBinding() {
|
void rendersPartWithNoBinding(@Mock PartRenderer partRenderer) {
|
||||||
def part = new Part('test', new PartType(['.gsp'], new GspPartRenderer()), 'Hello, World!')
|
when(partRenderer.render(any(), any(), any())).thenReturn('Hello, World!')
|
||||||
|
def partType = new PartType([], partRenderer)
|
||||||
|
def part = new Part('test', partType , '')
|
||||||
|
|
||||||
def r = this.renderer.render("<%= parts['test'].render() %>", [], [part], [:])
|
def r = this.renderer.render("<%= parts['test'].render() %>", [], [part], [:])
|
||||||
assertEquals('Hello, World!', r)
|
assertEquals('Hello, World!', r)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void rendersPartWithBinding() {
|
void rendersPartWithBinding(@Mock PartRenderer partRenderer) {
|
||||||
def part = new Part('test', new PartType(['.gsp'], new GspPartRenderer()), "<%= binding['greeting'] %>")
|
when(partRenderer.render(any(), argThat { Map m -> m.get('greeting') == 'Hello, World!'}, any())).thenReturn('Hello, World!')
|
||||||
|
def partType = new PartType([], partRenderer)
|
||||||
|
def part = new Part('test', partType, '')
|
||||||
|
|
||||||
def r = this.renderer.render("<%= parts['test'].render([greeting: 'Hello, World!'])", [], [part], [:])
|
def r = this.renderer.render("<%= parts['test'].render([greeting: 'Hello, World!'])", [], [part], [:])
|
||||||
assertEquals('Hello, World!', r)
|
assertEquals('Hello, World!', r)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void rendersText() {
|
void rendersText(@Mock TextRenderer textRenderer, @Mock FrontMatterGetter frontMatterGetter) {
|
||||||
def text = new Text('**Hello, World!**', 'test', new TextType(['.gsp'], new MarkdownTextRenderer(), new MarkdownFrontMatterGetter()))
|
when(textRenderer.render(any(), any())).thenReturn('<p><strong>Hello, World!</strong></p>\n')
|
||||||
|
def textType = new TextType([], textRenderer, frontMatterGetter)
|
||||||
|
def text = new Text('', 'test', textType)
|
||||||
|
|
||||||
def r = this.renderer.render("<%= texts.find { it.path == 'test' }.render() %>", [text], [], [:])
|
def r = this.renderer.render("<%= texts.find { it.path == 'test' }.render() %>", [text], [], [:])
|
||||||
assertEquals('<p><strong>Hello, World!</strong></p>\n', r)
|
assertEquals('<p><strong>Hello, World!</strong></p>\n', r)
|
||||||
}
|
}
|
||||||
|
@ -1,37 +1,52 @@
|
|||||||
package com.jessebrault.ssg.template
|
package com.jessebrault.ssg.template
|
||||||
|
|
||||||
import com.jessebrault.ssg.part.GspPartRenderer
|
|
||||||
import com.jessebrault.ssg.part.Part
|
import com.jessebrault.ssg.part.Part
|
||||||
|
import com.jessebrault.ssg.part.PartRenderer
|
||||||
import com.jessebrault.ssg.part.PartType
|
import com.jessebrault.ssg.part.PartType
|
||||||
import com.jessebrault.ssg.text.FrontMatter
|
import com.jessebrault.ssg.text.FrontMatter
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith
|
||||||
|
import org.mockito.Mock
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals
|
import static org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import static org.mockito.ArgumentMatchers.any
|
||||||
|
import static org.mockito.ArgumentMatchers.argThat
|
||||||
|
import static org.mockito.Mockito.when
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension)
|
||||||
class GspTemplateRendererTests {
|
class GspTemplateRendererTests {
|
||||||
|
|
||||||
private final TemplateRenderer renderer = new GspTemplateRenderer()
|
private final TemplateRenderer renderer = new GspTemplateRenderer()
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void rendersPartWithNoBinding() {
|
void rendersPartWithNoBinding(@Mock PartRenderer partRenderer) {
|
||||||
def template = new Template(
|
def template = new Template(
|
||||||
"<%= parts['test'].render() %>",
|
"<%= parts['test'].render() %>",
|
||||||
null,
|
null,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
def part = new Part('test', new PartType(['.gsp'], new GspPartRenderer()), 'Hello, World!')
|
|
||||||
|
when(partRenderer.render(any(), any(), any())).thenReturn('Hello, World!')
|
||||||
|
def partType = new PartType([], partRenderer)
|
||||||
|
def part = new Part('test', partType, null)
|
||||||
|
|
||||||
def r = this.renderer.render(template, new FrontMatter([:]), '', [part], [:])
|
def r = this.renderer.render(template, new FrontMatter([:]), '', [part], [:])
|
||||||
assertEquals('Hello, World!', r)
|
assertEquals('Hello, World!', r)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void rendersPartWithBinding() {
|
void rendersPartWithBinding(@Mock PartRenderer partRenderer) {
|
||||||
def template = new Template(
|
def template = new Template(
|
||||||
"<%= parts['greeting'].render([person: 'World']) %>",
|
"<%= parts['greeting'].render([person: 'World']) %>",
|
||||||
null,
|
null,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
def part = new Part('greeting', new PartType(['.gsp'], new GspPartRenderer()), 'Hello, $binding.person!')
|
|
||||||
|
when(partRenderer.render(any(), argThat { Map m -> m.get('person') == 'World' }, any())).thenReturn('Hello, World!')
|
||||||
|
def partType = new PartType([], partRenderer)
|
||||||
|
def part = new Part('greeting', partType, null)
|
||||||
|
|
||||||
def r = this.renderer.render(template, new FrontMatter([:]), '', [part], [:])
|
def r = this.renderer.render(template, new FrontMatter([:]), '', [part], [:])
|
||||||
assertEquals('Hello, World!', r)
|
assertEquals('Hello, World!', r)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user