Skip to content

Commit

Permalink
unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Paolo Venturi - Diennea committed Nov 24, 2022
1 parent 75e0660 commit 87614c2
Show file tree
Hide file tree
Showing 9 changed files with 198 additions and 106 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ public CertificatesResponse getCertificateById(@PathParam("certId") String certI
@Data
@NoArgsConstructor
@AllArgsConstructor
private static final class CertificateForm {
public static final class CertificateForm {
private String domain;
private Set<String> subjectAltNames;
private String type;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,25 @@
*/
package org.carapaceproxy.api.response;

import io.netty.handler.codec.http.HttpResponseStatus;
import javax.ws.rs.core.Response;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
* Form validation REST response
*
* @author paolo.venturi
*/
@Getter
@NoArgsConstructor
public class FormValidationResponse extends SimpleResponse {

private final static String ERROR_FIELD_REQUIRED = "Value required";
private final static String ERROR_FIELD_INVALID = "Value invalid";
private final static String ERROR_FIELD_DUPLICATED = "Value already used";
public final static String ERROR_FIELD_REQUIRED = "Value required";
public final static String ERROR_FIELD_INVALID = "Value invalid";
public final static String ERROR_FIELD_DUPLICATED = "Value already used";

private final String field;
private String field;

private FormValidationResponse(String field, String message) {
super (message);
Expand All @@ -34,7 +37,7 @@ public static Response fieldInvalid(String field) {
}

public static Response fieldError(String field, String message) {
return Response.status(422) // UNPROCESSABLE ENTITY
return Response.status(HttpResponseStatus.UNPROCESSABLE_ENTITY.code())
.entity(new FormValidationResponse(field, message))
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@
*/
package org.carapaceproxy.api.response;

import io.netty.handler.codec.http.HttpResponseStatus;
import javax.ws.rs.core.Response;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
* Simple REST response
*
* @author paolo.venturi
*/
@Getter
@NoArgsConstructor
public class SimpleResponse {
private final String message;

private String message;

protected SimpleResponse(String message) {
this.message = message;
Expand All @@ -27,14 +31,8 @@ public static Response created() {
return Response.status(Response.Status.CREATED).build();
}

public static Response conflict(String message) {
return Response.status(Response.Status.CONFLICT)
.entity(new SimpleResponse(message))
.build();
}

public static Response error(Throwable error) {
return Response.status(422) // UNPROCESSABLE ENTITY
return Response.status(HttpResponseStatus.UNPROCESSABLE_ENTITY.code())
.entity(new SimpleResponse(error.getMessage()))
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
*/
package org.carapaceproxy.api;

import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Properties;
import org.apache.curator.test.TestingServer;
import org.carapaceproxy.utils.RawHttpClient;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class ClusterReconfigTest extends UseAdminServer {
Expand Down Expand Up @@ -51,10 +51,7 @@ public void testReconfigInClusterMode() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));

assertTrue(resp.isOk());
}

// restart, same "static" configuration
Expand All @@ -73,10 +70,7 @@ public void testReconfigInClusterMode() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));

assertTrue(resp.isOk());
}
assertEquals(9000, server.getCurrentConfiguration().getConnectTimeout());
assertEquals(30, server.getBackendHealthManager().getPeriod());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
*/
package org.carapaceproxy.api;

import java.util.Properties;
import org.carapaceproxy.utils.RawHttpClient;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Properties;
import org.carapaceproxy.utils.RawHttpClient;
import org.junit.Test;

/**
Expand Down Expand Up @@ -72,9 +72,7 @@ public void testDynamicConfigurationDumpingAndApplying() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));
assertTrue(resp.isOk());

// 2) Dumping + check
resp = client.get("/api/config", credentials);
Expand All @@ -97,9 +95,7 @@ public void testDynamicConfigurationDumpingAndApplying() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ dumpedToReApply);
s = resp.getBodyString();
System.out.println("s:" + s);
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));
assertTrue(resp.isOk());

// 4) Dumping + check
resp = client.get("/api/config", credentials);
Expand Down Expand Up @@ -128,10 +124,7 @@ public void testReconfig() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));

assertTrue(resp.isOk());
}

// restart, same "static" configuration
Expand All @@ -151,10 +144,7 @@ public void testReconfig() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));

assertTrue(resp.isOk());
}
assertEquals(9000, server.getCurrentConfiguration().getConnectTimeout());
assertEquals(30, server.getBackendHealthManager().getPeriod());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,48 +19,49 @@
*/
package org.carapaceproxy.api;

import static org.carapaceproxy.server.certificates.DynamicCertificateState.WAITING;
import static org.carapaceproxy.server.certificates.DynamicCertificatesManager.DEFAULT_KEYPAIRS_SIZE;
import static org.carapaceproxy.utils.APIUtils.certificateStateToString;
import static org.carapaceproxy.utils.CertificatesTestUtils.generateSampleChain;
import static org.carapaceproxy.utils.CertificatesTestUtils.uploadCertificate;
import static org.carapaceproxy.utils.CertificatesUtils.KEYSTORE_PW;
import static org.carapaceproxy.utils.CertificatesUtils.createKeystore;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.security.KeyPair;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Base64;
import java.util.Properties;
import javax.servlet.http.HttpServletResponse;
import org.carapaceproxy.configstore.CertificateData;
import org.carapaceproxy.configstore.ConfigurationStore;
import org.carapaceproxy.server.certificates.DynamicCertificateState;
import static org.carapaceproxy.server.certificates.DynamicCertificateState.WAITING;
import static org.carapaceproxy.server.certificates.DynamicCertificatesManager.DEFAULT_KEYPAIRS_SIZE;
import org.carapaceproxy.server.certificates.DynamicCertificatesManager;
import org.carapaceproxy.server.filters.*;
import org.carapaceproxy.server.filters.RegexpMapSessionIdFilter;
import org.carapaceproxy.server.filters.RegexpMapUserIdFilter;
import org.carapaceproxy.server.filters.XForwardedForRequestFilter;
import org.carapaceproxy.server.filters.XTlsCipherRequestFilter;
import org.carapaceproxy.server.filters.XTlsProtocolRequestFilter;
import org.carapaceproxy.server.mapper.requestmatcher.MatchAllRequestMatcher;

import static org.carapaceproxy.utils.CertificatesTestUtils.uploadCertificate;

import org.carapaceproxy.utils.CertificatesUtils;
import org.carapaceproxy.utils.RawHttpClient;
import org.carapaceproxy.utils.TestUtils;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import org.junit.Assert;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.Test;
import static org.carapaceproxy.utils.APIUtils.certificateStateToString;
import static org.carapaceproxy.utils.CertificatesTestUtils.generateSampleChain;
import static org.carapaceproxy.utils.CertificatesUtils.KEYSTORE_PW;
import static org.carapaceproxy.utils.CertificatesUtils.createKeystore;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertThrows;
import java.nio.file.Files;
import java.security.KeyPair;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.shredzone.acme4j.util.KeyPairUtils;

Expand Down Expand Up @@ -231,11 +232,7 @@ public void testConfig() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
// no backend configured
assertTrue(s.equals("{\"ok\":true,\"error\":\"\"}"));

assertTrue(resp.isOk());
}
try (RawHttpClient client = new RawHttpClient("localhost", 8761)) {
String body = "connectionsmanager.maxconnectionsperendpoint=20-BAD-VALUE";
Expand All @@ -246,11 +243,8 @@ public void testConfig() throws Exception {
+ "Authorization: Basic " + credentials.toBase64() + "\r\n"
+ "\r\n"
+ body);
String s = resp.getBodyString();
System.out.println("s:" + s);
// no backend configured
assertTrue(s.contains("\"ok\":false"));
assertTrue(s.contains("Invalid integer value '20-BAD-VALUE' for parameter 'connectionsmanager.maxconnectionsperendpoint'"));
assertTrue(resp.isError());
assertTrue(resp.getBodyString().contains("Invalid integer value '20-BAD-VALUE' for parameter 'connectionsmanager.maxconnectionsperendpoint'"));
}
}

Expand Down
Loading

0 comments on commit 87614c2

Please sign in to comment.