mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-01-10 22:03:03 +08:00
Create a basic test for Grasscutter's HTTP server
This commit is contained in:
parent
2081087c76
commit
877937bfbb
67
src/test/java/io/grasscutter/GrasscutterTest.java
Normal file
67
src/test/java/io/grasscutter/GrasscutterTest.java
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
package io.grasscutter;
|
||||||
|
|
||||||
|
import com.mchange.util.AssertException;
|
||||||
|
import emu.grasscutter.Grasscutter;
|
||||||
|
import emu.grasscutter.config.Configuration;
|
||||||
|
import lombok.Getter;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Request;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
|
import org.junit.jupiter.api.DisplayName;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testing entrypoint for {@link Grasscutter}.
|
||||||
|
*/
|
||||||
|
public final class GrasscutterTest {
|
||||||
|
@Getter private static final OkHttpClient httpClient
|
||||||
|
= new OkHttpClient();
|
||||||
|
|
||||||
|
@Getter private static int httpPort = -1;
|
||||||
|
@Getter private static int gamePort = -1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an HTTP URL.
|
||||||
|
*
|
||||||
|
* @param route The route to use.
|
||||||
|
* @return The URL.
|
||||||
|
*/
|
||||||
|
public static String http(String route) {
|
||||||
|
return "http://127.0.0.1:" + GrasscutterTest.httpPort + "/" + route;
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeAll
|
||||||
|
public static void main() {
|
||||||
|
try {
|
||||||
|
// Start Grasscutter.
|
||||||
|
Grasscutter.main(new String[]{"-test"});
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
throw new AssertException("Grasscutter failed to start.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the ports.
|
||||||
|
GrasscutterTest.httpPort = Configuration.SERVER.http.bindPort;
|
||||||
|
GrasscutterTest.gamePort = Configuration.SERVER.game.bindPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("HTTP server check")
|
||||||
|
public void checkHttpServer() {
|
||||||
|
// Create a request.
|
||||||
|
var request = new Request.Builder()
|
||||||
|
.url(GrasscutterTest.http(""))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// Perform the request.
|
||||||
|
try (var response = GrasscutterTest.httpClient
|
||||||
|
.newCall(request).execute()) {
|
||||||
|
// Check the response.
|
||||||
|
Assertions.assertTrue(response.isSuccessful());
|
||||||
|
} catch (IOException exception) {
|
||||||
|
throw new AssertionError(exception);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user