package com.example.request_log;
import org.junit.Test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
public class RequestLogPatternIntegrationTest extends AbstractRequestLogPatternIntegrationTest {
private static final Pattern REQUEST_LOG_PATTERN = Pattern.compile(
"127\\.0\\.0\\.1 - - \\[.+\\] \"GET /greet\\?name=Charley HTTP/1\\.1\" 200 15 \"-\" \"TestApplication \\(test-request-logs\\)\" \\d+"
);
@Test
public void testDefaultPattern() throws Exception {
String url = String.format("http://localhost:%d/greet?name=Charley", dropwizardAppRule.getLocalPort());
for (int i = 0; i < 100; i++) {
client.target(url).request().get();
}
Thread.sleep(100); // To let async logs to finish
List<String> logs;
try (BufferedReader reader = new BufferedReader(new FileReader(new File(tempFile)))) {
logs = reader.lines().collect(Collectors.toList());
}
assertThat(logs).hasSize(100).allMatch(s -> REQUEST_LOG_PATTERN.matcher(s).matches());
}
}