This repository has been archived by the owner on Apr 21, 2018. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
200 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
82 changes: 82 additions & 0 deletions
82
buildergen/src/test/java/info/piwai/buildergen/generation/ResourceCodeWriterTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
package info.piwai.buildergen.generation; | ||
|
||
import static org.junit.Assert.assertSame; | ||
import static org.mockito.Matchers.anyString; | ||
import static org.mockito.Mockito.doThrow; | ||
import static org.mockito.Mockito.mock; | ||
import static org.mockito.Mockito.times; | ||
import static org.mockito.Mockito.verify; | ||
import static org.mockito.Mockito.when; | ||
|
||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
|
||
import javax.annotation.processing.Filer; | ||
import javax.tools.FileObject; | ||
import javax.tools.JavaFileManager.Location; | ||
|
||
import org.junit.Test; | ||
import org.mockito.Mockito; | ||
|
||
import com.sun.codemodel.JCodeModel; | ||
import com.sun.codemodel.JPackage; | ||
|
||
public class ResourceCodeWriterTest { | ||
|
||
/** | ||
* This test is just for the fun of using Mockito. It does not really test | ||
* the external behavior of the method. | ||
*/ | ||
@Test | ||
public void usesFilerToOpenStream() throws IOException { | ||
|
||
Filer filer = mock(Filer.class); | ||
FileObject fileObject = mock(FileObject.class); | ||
when(filer.createResource(Mockito.<Location> any(), anyString(), anyString())).thenReturn(fileObject); | ||
|
||
OutputStream expectedOS = mock(OutputStream.class); | ||
when(fileObject.openOutputStream()).thenReturn(expectedOS); | ||
|
||
ResourceCodeWriter resourceCodeWriter = new ResourceCodeWriter(filer); | ||
JPackage jPackage = new JCodeModel()._package("some.package"); | ||
OutputStream resultingOS = resourceCodeWriter.openBinary(jPackage, null); | ||
|
||
assertSame(expectedOS, resultingOS); | ||
} | ||
|
||
@Test | ||
public void doesNotCallOutputStreamCloseMethod() throws IOException { | ||
|
||
Filer filer = mock(Filer.class); | ||
FileObject fileObject = mock(FileObject.class); | ||
when(filer.createResource(Mockito.<Location> any(), anyString(), anyString())).thenReturn(fileObject); | ||
|
||
OutputStream expectedOS = mock(OutputStream.class); | ||
when(fileObject.openOutputStream()).thenReturn(expectedOS); | ||
|
||
ResourceCodeWriter resourceCodeWriter = new ResourceCodeWriter(filer); | ||
JPackage jPackage = new JCodeModel()._package("some.package"); | ||
resourceCodeWriter.openBinary(jPackage, null); | ||
|
||
doThrow(new RuntimeException("Close method should not be called")).when(expectedOS).close(); | ||
|
||
resourceCodeWriter.close(); | ||
} | ||
|
||
@Test | ||
public void multipleCallsAreDelegatedToFiler() throws IOException{ | ||
Filer filer = mock(Filer.class); | ||
|
||
FileObject fileObject = mock(FileObject.class); | ||
when(filer.createResource(Mockito.<Location> any(), anyString(), anyString())).thenReturn(fileObject); | ||
|
||
ResourceCodeWriter resourceCodeWriter = new ResourceCodeWriter(filer); | ||
JPackage jPackage = new JCodeModel()._package("some.package"); | ||
resourceCodeWriter.openBinary(jPackage, null); | ||
resourceCodeWriter.openBinary(jPackage, null); | ||
|
||
verify(filer, times(2)).createResource(Mockito.<Location> any(), anyString(), anyString()); | ||
|
||
} | ||
|
||
} |
76 changes: 76 additions & 0 deletions
76
buildergen/src/test/java/info/piwai/buildergen/generation/SourceCodeWriterTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
package info.piwai.buildergen.generation; | ||
|
||
import static org.junit.Assert.assertSame; | ||
import static org.mockito.Matchers.anyString; | ||
import static org.mockito.Mockito.doThrow; | ||
import static org.mockito.Mockito.mock; | ||
import static org.mockito.Mockito.times; | ||
import static org.mockito.Mockito.verify; | ||
import static org.mockito.Mockito.when; | ||
|
||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
|
||
import javax.annotation.processing.Filer; | ||
import javax.tools.JavaFileObject; | ||
|
||
import org.junit.Test; | ||
|
||
import com.sun.codemodel.JCodeModel; | ||
import com.sun.codemodel.JPackage; | ||
|
||
public class SourceCodeWriterTest { | ||
|
||
@Test | ||
public void usesFilerToOpenStream() throws IOException { | ||
|
||
Filer filer = mock(Filer.class); | ||
JavaFileObject fileObject = mock(JavaFileObject.class); | ||
when(filer.createSourceFile(anyString())).thenReturn(fileObject); | ||
|
||
OutputStream expectedOS = mock(OutputStream.class); | ||
when(fileObject.openOutputStream()).thenReturn(expectedOS); | ||
|
||
SourceCodeWriter sourceCodeWriter = new SourceCodeWriter(filer); | ||
JPackage jPackage = new JCodeModel()._package("some.package"); | ||
OutputStream resultingOS = sourceCodeWriter.openBinary(jPackage, "SomeClass.java"); | ||
|
||
assertSame(expectedOS, resultingOS); | ||
} | ||
|
||
@Test | ||
public void doesNotCallOutputStreamCloseMethod() throws IOException { | ||
|
||
Filer filer = mock(Filer.class); | ||
JavaFileObject fileObject = mock(JavaFileObject.class); | ||
when(filer.createSourceFile(anyString())).thenReturn(fileObject); | ||
|
||
OutputStream expectedOS = mock(OutputStream.class); | ||
when(fileObject.openOutputStream()).thenReturn(expectedOS); | ||
|
||
SourceCodeWriter sourceCodeWriter = new SourceCodeWriter(filer); | ||
JPackage jPackage = new JCodeModel()._package("some.package"); | ||
sourceCodeWriter.openBinary(jPackage, "SomeClass.java"); | ||
|
||
doThrow(new RuntimeException("Close method should not be called")).when(expectedOS).close(); | ||
|
||
sourceCodeWriter.close(); | ||
} | ||
|
||
@Test | ||
public void multipleCallsAreDelegatedToFiler() throws IOException { | ||
Filer filer = mock(Filer.class); | ||
|
||
JavaFileObject fileObject = mock(JavaFileObject.class); | ||
when(filer.createSourceFile(anyString())).thenReturn(fileObject); | ||
|
||
SourceCodeWriter sourceCodeWriter = new SourceCodeWriter(filer); | ||
JPackage jPackage = new JCodeModel()._package("some.package"); | ||
sourceCodeWriter.openBinary(jPackage, "SomeClass.java"); | ||
sourceCodeWriter.openBinary(jPackage, "SomeClass.java"); | ||
|
||
verify(filer, times(2)).createSourceFile(anyString()); | ||
|
||
} | ||
|
||
} |
31 changes: 31 additions & 0 deletions
31
buildergen/src/test/java/info/piwai/buildergen/validation/IsValidTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package info.piwai.buildergen.validation; | ||
|
||
import static org.junit.Assert.assertFalse; | ||
import static org.junit.Assert.assertTrue; | ||
|
||
import org.junit.Test; | ||
|
||
public class IsValidTest { | ||
|
||
@Test | ||
public void initialStateIsValid() { | ||
IsValid valid = new IsValid(); | ||
assertTrue(valid.isValid()); | ||
} | ||
|
||
@Test | ||
public void invalidateInvalidates() { | ||
IsValid valid = new IsValid(); | ||
valid.invalidate(); | ||
assertFalse(valid.isValid()); | ||
} | ||
|
||
@Test | ||
public void doubleInvalidateInvalidates() { | ||
IsValid valid = new IsValid(); | ||
valid.invalidate(); | ||
valid.invalidate(); | ||
assertFalse(valid.isValid()); | ||
} | ||
|
||
} |