| /*=============================================================================# |
| # Copyright (c) 2020 Stephan Wahlbrink <sw@wahlbrink.eu> and others. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License 2.0 which is available at |
| # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 |
| # which is available at https://www.apache.org/licenses/LICENSE-2.0. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 |
| # |
| # Contributors: |
| # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation |
| #=============================================================================*/ |
| |
| package org.eclipse.statet.rhelp.server; |
| |
| import static org.junit.jupiter.api.Assertions.assertEquals; |
| import static org.junit.jupiter.api.Assertions.assertNotNull; |
| |
| import java.io.ByteArrayInputStream; |
| import java.io.IOException; |
| import java.net.URI; |
| import java.net.URISyntaxException; |
| |
| import org.eclipse.jetty.client.HttpClient; |
| |
| import org.junit.jupiter.api.Test; |
| import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; |
| import org.opentest4j.AssertionFailedError; |
| import org.springframework.boot.web.server.LocalServerPort; |
| import org.springframework.util.StreamUtils; |
| |
| import org.eclipse.statet.jcommons.lang.NonNullByDefault; |
| |
| import org.eclipse.statet.internal.rhelp.core.DataStream; |
| import org.eclipse.statet.internal.rhelp.core.REnvHelpImpl; |
| import org.eclipse.statet.internal.rhelp.core.SerUtil; |
| import org.eclipse.statet.internal.rhelp.core.server.JettyREnvHelpAccess; |
| import org.eclipse.statet.rhelp.core.http.jetty.JettyRHelpUtils; |
| |
| |
| @NonNullByDefault |
| public class HttpAccesssTests extends AbstractDefaultAppTest { |
| |
| |
| @LocalServerPort |
| private int port; |
| |
| |
| public HttpAccesssTests() { |
| } |
| |
| |
| private HttpClient getHttpClient() { |
| final HttpClient httpClient= new HttpClient(); |
| httpClient.setExecutor(JettyRHelpUtils.getExecutor()); |
| httpClient.setAddressResolutionTimeout(10000); |
| httpClient.setConnectTimeout(10000); |
| return httpClient; |
| } |
| |
| private URI getHelpUrl(final String envId) throws URISyntaxException { |
| return new URI("http", null, "localhost", this.port, "/" + envId, null, null); |
| } |
| |
| |
| @Test |
| @EnabledIfEnvironmentVariable(named = "STATET_TEST_FILES", matches = ".+") |
| public void loadBasicData() throws Exception { |
| assumeRHelpAvailable("default"); |
| |
| final JettyREnvHelpAccess clientSupport= new JettyREnvHelpAccess( |
| getHelpUrl("default"), getHttpClient() ); |
| final byte[] basicDataSerialized= clientSupport.loadREnvHelpData( |
| REnvHelpImpl.NOT_AVAILABLE_STAMP, (in) -> { |
| try { |
| assertNotNull(in); |
| return StreamUtils.copyToByteArray(in); |
| } |
| catch (final IOException e) { |
| throw new AssertionFailedError("Error when reading data stream.", e); |
| } |
| }); |
| |
| assertNotNull(basicDataSerialized); |
| |
| final DataStream in= DataStream.get(new ByteArrayInputStream(basicDataSerialized)); |
| assertEquals(SerUtil.CURRENT_VERSION, in.readVersion()); |
| } |
| |
| |
| } |