@Test
void testLatestVersion() {

    assertDoesNotThrow(() -> {
        LOGGER.info("Determining the latest version of Speedment.");
        final Speedment speedment = ApplicationBuilders.empty()
            .withBundle(GeneratorBundle.class)
            .withBundle(ToolBundle.class)
            .withSkipCheckDatabaseConnectivity()
            .withSkipValidateRuntimeConfig()
            .withInjectorProxy(new TestInjectorProxy())
            .build();
        final VersionComponent version = speedment.getOrThrow(VersionComponent.class);
        try {
            final String latest = version.latestVersion().get(2, TimeUnit.SECONDS);
            LOGGER.info("The latest released version of Speedment is " + latest + ".");
        } catch (final ExecutionException | InterruptedException ex) {
            if (hasCause(ex, UnknownHostException.class)) {
                LOGGER.warn(ex, "Not connected to the Internet?");
            } else {
                LOGGER.error(ex);
            }
        } catch (final TimeoutException ex) {
            LOGGER.error(ex, "Connection timed out before a version could be established.");
        }
    });
}