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 | ||||
|     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 | ||||
|      */ | ||||
|  | ||||
| @ -1,16 +1,23 @@ | ||||
| package com.jessebrault.ssg.specialpage | ||||
| 
 | ||||
| import com.jessebrault.ssg.part.GspPartRenderer | ||||
| import com.jessebrault.ssg.part.Part | ||||
| import com.jessebrault.ssg.part.PartRenderer | ||||
| import com.jessebrault.ssg.part.PartType | ||||
| import com.jessebrault.ssg.text.MarkdownFrontMatterGetter | ||||
| import com.jessebrault.ssg.text.MarkdownTextRenderer | ||||
| import com.jessebrault.ssg.text.FrontMatterGetter | ||||
| import com.jessebrault.ssg.text.Text | ||||
| import com.jessebrault.ssg.text.TextRenderer | ||||
| import com.jessebrault.ssg.text.TextType | ||||
| 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.mockito.ArgumentMatchers.any | ||||
| import static org.mockito.ArgumentMatchers.argThat | ||||
| import static org.mockito.Mockito.when | ||||
| 
 | ||||
| @ExtendWith(MockitoExtension) | ||||
| class GspSpecialPageRendererTests { | ||||
| 
 | ||||
|     private final SpecialPageRenderer renderer = new GspSpecialPageRenderer() | ||||
| @ -23,22 +30,31 @@ class GspSpecialPageRendererTests { | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void rendersPartWithNoBinding() { | ||||
|         def part = new Part('test', new PartType(['.gsp'], new GspPartRenderer()), 'Hello, World!') | ||||
|     void rendersPartWithNoBinding(@Mock PartRenderer partRenderer) { | ||||
|         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], [:]) | ||||
|         assertEquals('Hello, World!', r) | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void rendersPartWithBinding() { | ||||
|         def part = new Part('test', new PartType(['.gsp'], new GspPartRenderer()), "<%= binding['greeting'] %>") | ||||
|     void rendersPartWithBinding(@Mock PartRenderer partRenderer) { | ||||
|         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], [:]) | ||||
|         assertEquals('Hello, World!', r) | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void rendersText() { | ||||
|         def text = new Text('**Hello, World!**', 'test', new TextType(['.gsp'], new MarkdownTextRenderer(), new MarkdownFrontMatterGetter())) | ||||
|     void rendersText(@Mock TextRenderer textRenderer, @Mock FrontMatterGetter frontMatterGetter) { | ||||
|         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], [], [:]) | ||||
|         assertEquals('<p><strong>Hello, World!</strong></p>\n', r) | ||||
|     } | ||||
|  | ||||
| @ -1,37 +1,52 @@ | ||||
| package com.jessebrault.ssg.template | ||||
| 
 | ||||
| import com.jessebrault.ssg.part.GspPartRenderer | ||||
| import com.jessebrault.ssg.part.Part | ||||
| import com.jessebrault.ssg.part.PartRenderer | ||||
| import com.jessebrault.ssg.part.PartType | ||||
| import com.jessebrault.ssg.text.FrontMatter | ||||
| 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.mockito.ArgumentMatchers.any | ||||
| import static org.mockito.ArgumentMatchers.argThat | ||||
| import static org.mockito.Mockito.when | ||||
| 
 | ||||
| @ExtendWith(MockitoExtension) | ||||
| class GspTemplateRendererTests { | ||||
| 
 | ||||
|     private final TemplateRenderer renderer = new GspTemplateRenderer() | ||||
| 
 | ||||
|     @Test | ||||
|     void rendersPartWithNoBinding() { | ||||
|     void rendersPartWithNoBinding(@Mock PartRenderer partRenderer) { | ||||
|         def template = new Template( | ||||
|                 "<%= parts['test'].render() %>", | ||||
|                 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], [:]) | ||||
|         assertEquals('Hello, World!', r) | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void rendersPartWithBinding() { | ||||
|     void rendersPartWithBinding(@Mock PartRenderer partRenderer) { | ||||
|         def template = new Template( | ||||
|                 "<%= parts['greeting'].render([person: 'World']) %>", | ||||
|                 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], [:]) | ||||
|         assertEquals('Hello, World!', r) | ||||
|     } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 JesseBrault0709
						JesseBrault0709