Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
*/
package org.quickperf.web.spring.testgeneration;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.quickperf.web.spring.HttpContentType;

class ExpectedResponseFileGenerator {
Expand All @@ -24,6 +26,9 @@ private ExpectedResponseFileGenerator() {
TestFile generate(String content, String contentType, String fileNameWithoutExtension) {
String responseExtension = findExpectedResponseFileExtension(contentType);
String expectedResponseFileName = fileNameWithoutExtension + "-expected" + responseExtension;
if (responseExtension.equals(".json")){
content = formatJson(content);
}
return new TestFile(expectedResponseFileName, content);
}

Expand All @@ -37,4 +42,16 @@ private String findExpectedResponseFileExtension(String contentType) {
return ".txt";
}

private String formatJson(String content){
ObjectMapper mapper = new ObjectMapper();
try {
Object str = mapper.readValue(content, Object.class);
String jsonPrettyPrint = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(str);
content = jsonPrettyPrint;
} catch (JsonProcessingException e) {
// do nothing. original content will be used
}
return content;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ public class JsonWithoutSqlExecutionController {
@GetMapping(HttpUrl.JSON_WITHOUT_SQL)
public List<PlayerWithTeamName> jsonWithoutSql() {
PlayerWithTeamName paulPogba = new PlayerWithTeamName("Paul", "Pogba", "Manchester United");
PlayerWithTeamName antoineGriezman = new PlayerWithTeamName("Antoine", "Griezman", "Barcelona" );
return asList(paulPogba, antoineGriezman);
PlayerWithTeamName antoineGriezmann = new PlayerWithTeamName("Antoine", "Griezmann", "Barcelona" );
return asList(paulPogba, antoineGriezmann);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,16 @@
*/
package testgen.util;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Path;
import java.nio.file.Paths;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class FileContentVerifier {

Expand All @@ -34,7 +39,12 @@ public void compareGeneratedFileWithReferenceFile(String fileName) {
File testFolder = new File(pathOfFolderContainingGeneratedFiles);
File generatedSqlFile = new File(testFolder, fileName);
File expectedSqlFile = new File(folderContainingReferenceFiles, fileName);
assertThat(generatedSqlFile).hasSameTextualContentAs(expectedSqlFile);

if (fileName.endsWith(".json")){
assertEqualJsonFiles(expectedSqlFile, generatedSqlFile);
} else {
assertThat(generatedSqlFile).hasSameTextualContentAs(expectedSqlFile);
}
}

private File findFolderContainingReferenceFiles(String referenceFolderRelativePath) {
Expand All @@ -47,4 +57,13 @@ private File findFolderContainingReferenceFiles(String referenceFolderRelativePa
+ File.separator + referenceFolderRelativePath);
}

private void assertEqualJsonFiles(File expectedSqlFile, File generatedSqlFile) {
ObjectMapper mapper = new ObjectMapper();
try {
assertEquals(mapper.readTree(expectedSqlFile), mapper.readTree(generatedSqlFile));
} catch (IOException e) {
throw new UncheckedIOException(String.format("Unable to compare json files:\n<%s> \nand:\n<%s>", expectedSqlFile.getAbsoluteFile(), generatedSqlFile.getAbsoluteFile()), e);
}
}

}
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
[{"firstName":"Paul","lastName":"Pogba","team":"Manchester United"},{"firstName":"Antoine","lastName":"Griezmann","team":"Barcelona"}]
[ {
"firstName" : "Paul",
"lastName" : "Pogba",
"team" : "Manchester United"
}, {
"firstName" : "Antoine",
"lastName" : "Griezmann",
"team" : "Barcelona"
} ]
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
[{"firstName":"Paul","lastName":"Pogba","team":"Manchester United"},{"firstName":"Antoine","lastName":"Griezman","team":"Barcelona"}]
[ {
"firstName" : "Paul",
"lastName" : "Pogba",
"team" : "Manchester United"
}, {
"firstName" : "Antoine",
"lastName" : "Griezmann",
"team" : "Barcelona"
} ]
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
[{"firstName":"Paul","lastName":"Pogba","team":"Manchester United"},{"firstName":"Antoine","lastName":"Griezmann","team":"Barcelona"}]
[ {
"firstName" : "Paul",
"lastName" : "Pogba",
"team" : "Manchester United"
}, {
"firstName" : "Antoine",
"lastName" : "Griezmann",
"team" : "Barcelona"
} ]
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
[{"firstName":"Paul","lastName":"Pogba","team":"Manchester United"},{"firstName":"Antoine","lastName":"Griezman","team":"Barcelona"}]
[ {
"firstName" : "Paul",
"lastName" : "Pogba",
"team" : "Manchester United"
}, {
"firstName" : "Antoine",
"lastName" : "Griezmann",
"team" : "Barcelona"
} ]