@@ -17,24 +17,25 @@ import org.assertj.assertions.generator.AssertionsEntryPointType
1717
1818import static com.google.common.collect.Maps.newTreeMap
1919import static com.google.common.collect.Sets.newTreeSet
20- import static org.apache.commons.lang3.ArrayUtils.isNotEmpty
2120import static org.apache.commons.lang3.StringUtils.remove
2221import static org.apache.commons.lang3.exception.ExceptionUtils.getStackTrace
2322
2423class AssertionsGeneratorReport {
24+ File directoryPathWhereAssertionFilesAreGenerated
25+ Collection<String > inputPackages
26+ Collection<String > inputClasses
27+ Exception exception
28+ Collection<TypeToken<?> > excludedClassesFromAssertionGeneration
29+ final List<String > userTemplates
30+ final Set<String > inputClassesNotFound
2531
2632 private static final String INDENT = " - "
2733 private static final String SECTION_START = " --- "
2834 private static final String SECTION_END = " ---\n "
29- private File directoryPathWhereAssertionFilesAreGenerated
30- private Set<String > generatedCustomAssertionFileNames
31- private Map<AssertionsEntryPointType , File > assertionsEntryPointFilesByType
32- private Collection<String > inputPackages
33- private Collection<String > inputClasses
34- private Exception exception
35- private Collection<TypeToken<?> > excludedClassesFromAssertionGeneration
36- private Set<String > inputClassesNotFound
37- private List<String > userTemplates
35+ private static final String Line = System . lineSeparator()
36+
37+ private final Set<String > generatedCustomAssertionFileNames
38+ private final Map<AssertionsEntryPointType , File > assertionsEntryPointFilesByType
3839
3940 AssertionsGeneratorReport () {
4041 assertionsEntryPointFilesByType = newTreeMap()
@@ -44,127 +45,135 @@ class AssertionsGeneratorReport {
4445 userTemplates = new ArrayList<> ()
4546 }
4647
47- void setDirectoryPathWhereAssertionFilesAreGenerated (File directory ) {
48- this . directoryPathWhereAssertionFilesAreGenerated = directory
49- }
50-
5148 void addGeneratedAssertionFile (File generatedCustomAssertionFile ) throws IOException {
5249 generatedCustomAssertionFileNames. add(generatedCustomAssertionFile. getCanonicalPath())
5350 }
5451
5552 String getReportContent () {
56- StringBuilder reportBuilder = new StringBuilder (System . lineSeparator())
57- reportBuilder. append(System . lineSeparator())
58- reportBuilder. append(" ====================================\n " )
59- reportBuilder. append(" AssertJ assertions generation report\n " )
60- reportBuilder. append(" ====================================\n " )
61- buildGeneratorParametersReport(reportBuilder)
62- reportBuilder. append(System . lineSeparator())
63- reportBuilder. append(SECTION_START ). append(" Generator results" ). append(SECTION_END )
64- if (generationError()) {
65- buildGeneratorReportError(reportBuilder)
66- } else if (nothingGenerated()) {
67- buildGeneratorReportWhenNothingWasGenerated(reportBuilder)
68- } else {
69- buildGeneratorReportSuccess(reportBuilder)
70- }
71- return reportBuilder. toString()
72- }
73-
74- private void buildGeneratorReportSuccess (StringBuilder reportBuilder ) {
75- reportBuilder. append(System . lineSeparator())
76- reportBuilder. append(" Directory where custom assertions files have been generated:\n " )
77- reportBuilder. append(INDENT ). append(directoryPathWhereAssertionFilesAreGenerated). append(System . lineSeparator())
78- reportBuilder. append(System . lineSeparator())
79- reportBuilder. append(" Custom assertions files generated:\n " )
80- for (String fileName : generatedCustomAssertionFileNames) {
81- reportBuilder. append(INDENT ). append(fileName). append(System . lineSeparator())
82- }
83- if (! inputClassesNotFound. isEmpty()) {
84- reportBuilder. append(System . lineSeparator())
85- reportBuilder. append(" No custom assertions files generated for the following input classes as they were not found:\n " )
86- for (String inputClassNotFound : inputClassesNotFound) {
87- reportBuilder. append(INDENT ). append(inputClassNotFound). append(System . lineSeparator())
53+ new StringBuilder (). tap {
54+ append(Line )
55+ append(" ====================================\n " )
56+ append(" AssertJ assertions generation report\n " )
57+ append(" ====================================\n " )
58+ buildGeneratorParametersReport(it)
59+ append(Line )
60+ append(SECTION_START ). append(" Generator results" ). append(SECTION_END )
61+
62+ if (generationError()) {
63+ buildGeneratorReportError(it)
64+ } else if (nothingGenerated()) {
65+ buildGeneratorReportWhenNothingWasGenerated(it)
66+ } else {
67+ buildGeneratorReportSuccess(it)
68+ }
69+ }. toString()
70+ }
71+
72+ private StringBuilder buildGeneratorReportSuccess (final StringBuilder self ) {
73+ self. tap {
74+ append(Line )
75+ append(" Directory where custom assertions files have been generated:\n " )
76+ append(INDENT ). append(directoryPathWhereAssertionFilesAreGenerated). append(Line )
77+ append(Line )
78+ append(" Custom assertions files generated:\n " )
79+ for (String fileName : generatedCustomAssertionFileNames) {
80+ append(INDENT ). append(fileName). append(Line )
81+ }
82+ if (! inputClassesNotFound. isEmpty()) {
83+ append(Line )
84+ append(" No custom assertions files generated for the following input classes as they were not found:\n " )
85+ for (inputClassNotFound in inputClassesNotFound) {
86+ append(INDENT ). append(inputClassNotFound). append(Line )
87+ }
8888 }
89+ reportEntryPointClassesGeneration(it)
8990 }
90- reportEntryPointClassesGeneration(reportBuilder)
9191 }
9292
93- private void reportEntryPointClassesGeneration (StringBuilder reportBuilder ) {
94- for (AssertionsEntryPointType type : assertionsEntryPointFilesByType. keySet()) {
95- if (assertionsEntryPointFilesByType. get(type) != null ) {
96- String entryPointClassName = remove(type. getFileName(), " .java" )
97- reportBuilder. append(System . lineSeparator())
98- .append(entryPointClassName). append(" entry point class has been generated in file:\n " )
99- .append(INDENT ). append(assertionsEntryPointFilesByType. get(type). getAbsolutePath())
100- .append(System . lineSeparator())
93+ private StringBuilder reportEntryPointClassesGeneration (final StringBuilder self ) {
94+ self. tap {
95+ for (type in assertionsEntryPointFilesByType. keySet()) {
96+ if (assertionsEntryPointFilesByType. get(type) != null ) {
97+ String entryPointClassName = remove(type. getFileName(), " .java" )
98+ append(Line )
99+ .append(entryPointClassName). append(" entry point class has been generated in file:\n " )
100+ .append(INDENT ). append(assertionsEntryPointFilesByType. get(type). getAbsolutePath())
101+ .append(Line )
102+ }
101103 }
102104 }
103- }
104105
105- private void buildGeneratorReportWhenNothingWasGenerated (StringBuilder reportBuilder ) {
106- reportBuilder. append(System . lineSeparator())
107- reportBuilder. append(" No assertions generated as no classes have been found from given classes/packages.\n " )
108- if (isNotEmpty(inputClasses as String [])) {
109- reportBuilder. append(INDENT ). append(" Given classes : " ). append(Arrays . toString(inputClasses))
110- reportBuilder. append(System . lineSeparator())
111- }
112- if (isNotEmpty(inputPackages as String [])) {
113- reportBuilder. append(INDENT ). append(" Given packages : " ). append(Arrays . toString(inputPackages))
114- reportBuilder. append(System . lineSeparator())
115- }
116- if (isNotEmpty(excludedClassesFromAssertionGeneration)) {
117- reportBuilder. append(INDENT ). append(" Excluded classes : " ). append(excludedClassesFromAssertionGeneration)
118- }
119106 }
120107
121- private void buildGeneratorReportError (StringBuilder reportBuilder ) {
122- reportBuilder. append(System . lineSeparator())
123- reportBuilder. append(" Assertions failed with error : " ). append(exception. getMessage())
124- reportBuilder. append(System . lineSeparator())
125- if (isNotEmpty(inputClasses as String [])) {
126- reportBuilder. append(INDENT ). append(" Given classes were : " ). append(Arrays . toString(inputClasses))
127- reportBuilder. append(System . lineSeparator())
128- }
129- if (isNotEmpty(inputPackages as String [])) {
130- reportBuilder. append(INDENT ). append(" Given packages were : " ). append(Arrays . toString(inputPackages))
131- reportBuilder. append(System . lineSeparator())
108+ private StringBuilder buildGeneratorReportWhenNothingWasGenerated (final StringBuilder self ) {
109+ self. tap {
110+ append(Line )
111+ append(" No assertions generated as no classes have been found from given classes/packages.\n " )
112+ if (! inputClasses?. isEmpty()) {
113+ append(INDENT ). append(" Given classes : " ). append(Arrays . toString(inputClasses))
114+ append(Line )
115+ }
116+ if (! inputPackages?. isEmpty()) {
117+ append(INDENT ). append(" Given packages : " ). append(Arrays . toString(inputPackages))
118+ append(Line )
119+ }
120+ if (! excludedClassesFromAssertionGeneration. isEmpty()) {
121+ append(INDENT ). append(" Excluded classes : " ). append(excludedClassesFromAssertionGeneration)
122+ }
132123 }
133- reportBuilder. append(System . lineSeparator())
134- reportBuilder. append(" Full error stack : " ). append(getStackTrace(exception))
135124 }
136125
137- private void buildGeneratorParametersReport ( StringBuilder reportBuilder ) {
138- reportBuilder . append( System . lineSeparator())
139- reportBuilder . append( SECTION_START ) . append( " Generator input parameters " ) . append(SECTION_END )
140- .append(System . lineSeparator ())
141- if ( ! (userTemplates as List< String > ) . isEmpty()) {
142- reportBuilder . append( " The following templates will replace the ones provided by AssertJ when generating AssertJ assertions : \n " )
143- for ( String inputPackage : userTemplates) {
144- reportBuilder . append(INDENT ) . append(inputPackage) . append( System . lineSeparator() )
126+ private StringBuilder buildGeneratorReportError ( final StringBuilder self ) {
127+ self . tap {
128+ append(Line )
129+ append( " Assertions failed with error : " ) . append(exception . getMessage ())
130+ append( Line )
131+ if ( ! inputClasses ?. isEmpty()) {
132+ append( INDENT ) . append( " Given classes were : " ) . append( Arrays . toString(inputClasses))
133+ append(Line )
145134 }
146- reportBuilder. append(System . lineSeparator())
147- }
148- if (isNotEmpty(inputPackages as String [])) {
149- reportBuilder. append(" Generating AssertJ assertions for classes in following packages and subpackages:\n " )
150- for (String inputPackage : inputPackages) {
151- reportBuilder. append(INDENT ). append(inputPackage). append(System . lineSeparator())
135+ if (! inputPackages?. isEmpty()) {
136+ append(INDENT ). append(" Given packages were : " ). append(Arrays . toString(inputPackages))
137+ append(Line )
152138 }
139+ append(Line )
140+ append(" Full error stack : " ). append(getStackTrace(exception))
153141 }
154- if (! isNotEmpty(inputClasses as String [])) {
155- if (isNotEmpty(inputPackages as String [])) {
156- reportBuilder. append(System . lineSeparator())
142+ }
143+
144+ private StringBuilder buildGeneratorParametersReport (final StringBuilder reportBuilder ) {
145+ reportBuilder. tap {
146+ append(Line )
147+ append(SECTION_START ). append(" Generator input parameters" ). append(SECTION_END )
148+ .append(Line )
149+ if (! userTemplates. isEmpty()) {
150+ append(" The following templates will replace the ones provided by AssertJ when generating AssertJ assertions :\n " )
151+ for (String inputPackage : userTemplates) {
152+ append(INDENT ). append(inputPackage). append(Line )
153+ }
154+ append(Line )
157155 }
158- reportBuilder. append(" Generating AssertJ assertions for classes:\n " )
159- for (String inputClass : inputClasses) {
160- reportBuilder. append(INDENT ). append(inputClass). append(System . lineSeparator())
156+ if (! inputPackages?. isEmpty()) {
157+ append(" Generating AssertJ assertions for classes in following packages and subpackages:\n " )
158+ for (inputPackage in inputPackages) {
159+ append(INDENT ). append(inputPackage). append(Line )
160+ }
161161 }
162- }
163- if (! excludedClassesFromAssertionGeneration?. isEmpty()) {
164- reportBuilder. append(System . lineSeparator())
165- reportBuilder. append(" Input classes excluded from assertions generation:\n " )
166- for (Class<?> excludedClass : excludedClassesFromAssertionGeneration) {
167- reportBuilder. append(INDENT ). append(excludedClass. getName()). append(System . lineSeparator())
162+ if (! inputClasses?. isEmpty()) {
163+ if (! inputPackages?. isEmpty()) {
164+ reportBuilder. append(Line )
165+ }
166+ append(" Generating AssertJ assertions for classes:\n " )
167+ for (inputClass in inputClasses) {
168+ append(INDENT ). append(inputClass). append(Line )
169+ }
170+ }
171+ if (! excludedClassesFromAssertionGeneration?. isEmpty()) {
172+ append(Line )
173+ append(" Input classes excluded from assertions generation:\n " )
174+ for (excludedClass in excludedClassesFromAssertionGeneration) {
175+ append(INDENT ). append(excludedClass. type. typeName). append(Line )
176+ }
168177 }
169178 }
170179 }
@@ -182,30 +191,6 @@ class AssertionsGeneratorReport {
182191 this . assertionsEntryPointFilesByType. put(assertionsEntryPointType, assertionsEntryPointFile)
183192 }
184193
185- void setInputPackages (Collection<? extends String > packages ) {
186- this . inputPackages = packages
187- }
188-
189- void setInputClasses (Collection<? extends String > classes ) {
190- this . inputClasses = classes
191- }
192-
193- void setException (Exception exception ) {
194- this . exception = exception
195- }
196-
197- Exception getReportedException () {
198- return exception
199- }
200-
201- void setExcludedClassesFromAssertionGeneration (Collection<TypeToken<?> > excludedClassSet ) {
202- this . excludedClassesFromAssertionGeneration = excludedClassSet
203- }
204-
205- Set<String > getInputClassesNotFound () {
206- return inputClassesNotFound
207- }
208-
209194 void reportInputClassesNotFound (Set<Class<?> > classes , String [] inputClassNames ) {
210195 Set<String > classesFound = newTreeSet()
211196 for (Class<?> clazz : classes) {
@@ -221,8 +206,4 @@ class AssertionsGeneratorReport {
221206 void registerUserTemplate (String userTemplateDescription ) {
222207 userTemplates. add(userTemplateDescription)
223208 }
224-
225- List<String > getUserTemplates () {
226- return userTemplates
227- }
228209}
0 commit comments