Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions problem/src/test/java/org/zalando/problem/SE4560FifthTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package org.zalando.problem;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

import java.net.URI;
import java.net.URISyntaxException;

public class SE4560FifthTest {
// Bottom up test with status, uri, and Problem's toString() method
@Test
void StatusStringTest() {
Status status = Status.valueOf(404);
assertEquals("404 Not Found", status.toString());
}
@Test
void ProblemURITest() {
try {
URI uri = new URI("https://www.example.com/path?query=value#fragment");
Problem prob = Problem.builder().withType(uri).build();
assertEquals(uri, prob.getType());
}
catch (URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
@Test
void ProblemStringStatusTest() {
Status status = Status.valueOf(404);
Problem prob = Problem.builder().withStatus(status).withTitle(status.getReasonPhrase()).build();
assertEquals("about:blank{404, Not Found}", Problem.toString(prob));
}
@Test
void ProblemTypeStringTest() {
try {
URI uri = new URI("https://www.example.com/path?query=value#fragment");
Problem prob = Problem.builder().withType(uri).build();
assertEquals("https://www.example.com/path?query=value#fragment{}", Problem.toString(prob));
}
catch (URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
@Test
void ProblemTypeStatusStringTest() {
try {
URI uri = new URI("https://www.example.com/path?query=value#fragment");
Status status = Status.valueOf(404);
Problem prob = Problem.builder().withType(uri).withStatus(status).withTitle(status.getReasonPhrase()).build();
assertEquals("https://www.example.com/path?query=value#fragment{404, Not Found}", Problem.toString(prob));
}
catch (URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
}
54 changes: 54 additions & 0 deletions problem/src/test/java/org/zalando/problem/SE4560FirstTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package org.zalando.problem;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

import java.net.URI;
import java.net.URISyntaxException;

public class SE4560FirstTest {
// Bottom up test with status and problem
@Test
void StatusTest() {
Status status = Status.valueOf(404);
assertEquals(404, status.getStatusCode());
assertEquals("Not Found", status.getReasonPhrase());
}
@Test
void ProblemTest() {
Status status = Status.valueOf(404);
Problem problem = Problem.valueOf(status);
assertEquals(status, problem.getStatus());
}
@Test
void ProblemDetailTest() {
Status status = Status.valueOf(404);
Problem problem = Problem.valueOf(status, "detail");
assertEquals("detail", problem.getDetail());
}
@Test
void ProblemInstanceTest() {
Status status = Status.valueOf(404);
try {
URI uri = new URI("https://www.example.com/path?query=value#fragment");
Problem problem = Problem.valueOf(status, uri);
assertEquals(uri, problem.getInstance());
}
catch (URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
@Test
void ProblemDetailInstanceTest() {
Status status = Status.valueOf(404);
try {
URI uri = new URI("https://www.example.com/path?query=value#fragment");
Problem problem = Problem.valueOf(status, "detail", uri);
assertEquals("detail", problem.getDetail());
assertEquals(uri, problem.getInstance());
}
catch (URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
}
28 changes: 28 additions & 0 deletions problem/src/test/java/org/zalando/problem/SE4560FourthTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.zalando.problem;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

public class SE4560FourthTest {
// Class partition test with ThrowableProblem's getMessage() method
@Test
void ThrowableEmptyTest() {
ThrowableProblem prob = Problem.builder().build();
assertEquals("", prob.getMessage());
}
@Test
void ThrowableTitleTest() {
ThrowableProblem prob = Problem.builder().withTitle("Title").build();
assertEquals("Title", prob.getMessage());
}
@Test
void ThrowableDetailTest() {
ThrowableProblem prob = Problem.builder().withDetail("Detail").build();
assertEquals("Detail", prob.getMessage());
}
@Test
void ThrowableMessageTest() {
ThrowableProblem prob = Problem.builder().withDetail("Detail").withTitle("Title").build();
assertEquals("Title: Detail", prob.getMessage());
}
}
49 changes: 49 additions & 0 deletions problem/src/test/java/org/zalando/problem/SE4560SecondTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package org.zalando.problem;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

import java.net.URI;
import java.net.URISyntaxException;

public class SE4560SecondTest {
// Class partition test with different types of problems
@Test
void BuildTypeTest() {
try {
URI probURI = new URI("https://www.example.com/path?query=value#fragment");
Problem prob = Problem.builder().withType(probURI).build();
assertEquals(probURI, prob.getType());
}
catch(URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
@Test
void BuildTitleTest() {
Problem prob = Problem.builder().withTitle("Title").build();
assertEquals("Title", prob.getTitle());
}
@Test
void BuildStatusTest() {
Status status = Status.valueOf(504);
Problem prob = Problem.builder().withStatus(status).build();
assertEquals(status, prob.getStatus());
}
@Test
void BuildDetailTest() {
Problem prob = Problem.builder().withDetail("detail").build();
assertEquals("detail", prob.getDetail());
}
@Test
void BuildInstanceTest() {
try {
URI probURI = new URI("https://www.example.com/path?query=value#fragment");
Problem prob = Problem.builder().withInstance(probURI).build();
assertEquals(probURI, prob.getInstance());
}
catch(URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());
}
}
}
81 changes: 81 additions & 0 deletions problem/src/test/java/org/zalando/problem/SE4560SixthTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package org.zalando.problem;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

import java.net.URI;
import java.net.URISyntaxException;


public class SE4560SixthTest {
// Class partition test using ThrowableProblem for Problem's toString() method
@Test
void ThrowableEmptyStringTest() {
ThrowableProblem prob = Problem.builder().build();
assertEquals("about:blank{}", prob.toString());
}
@Test
void ThrowableStatusStringTest() {
Status status = Status.valueOf(404);
ThrowableProblem prob = Problem.builder().withStatus(status).build();
assertEquals("about:blank{404}", prob.toString());
}
@Test
void ThrowableTitleStringTest() {
Status status = Status.valueOf(404);
ThrowableProblem prob = Problem.builder().withTitle(status.getReasonPhrase()).build();
assertEquals("about:blank{Not Found}", prob.toString());
}
@Test
void ThrowableDetailStringTest() {
ThrowableProblem prob = Problem.builder().withDetail("Detail").build();
assertEquals("about:blank{Detail}", prob.toString());
}
@Test
void ThrowableInstanceStringTest() {
try {
URI instance = new URI("https://www.example.com/path?query=value#fragment");
ThrowableProblem prob = Problem.builder().withInstance(instance).build();
assertEquals("about:blank{instance=https://www.example.com/path?query=value#fragment}", prob.toString());
}
catch(URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());

}
}
@Test
void ThrowableParameterStringTest() {
ThrowableProblem prob = Problem.builder().with("key", "value").build();
assertEquals("about:blank{key=value}", prob.toString());
}
@Test
void ThrowableTypeStringTest() {
try {
URI type = new URI("https://www.example.com/path?query=value#fragment");
ThrowableProblem prob = Problem.builder().withType(type).build();
assertEquals("https://www.example.com/path?query=value#fragment{}", prob.toString());
}
catch(URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());

}
}
@Test
void ThrowableAllStringTest() {
try {
URI type = new URI("https://www.example.com/path?query=value#fragment");
URI instance = new URI("https://www.example.com/path?query=value#fragment");
Status status = Status.valueOf(404);
ThrowableProblem prob = Problem.builder()
.withStatus(status).withTitle(status.getReasonPhrase()).withDetail("Detail").withInstance(instance).with("key", "value").withType(type)
.build();
assertEquals(
"https://www.example.com/path?query=value#fragment{404, Not Found, Detail, instance=https://www.example.com/path?query=value#fragment, key=value}",
prob.toString());
}
catch(URISyntaxException error) {
System.err.println("Invalid URI syntax: " + error.getMessage());

}
}
}
30 changes: 30 additions & 0 deletions problem/src/test/java/org/zalando/problem/SE4560ThirdTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.zalando.problem;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

public class SE4560ThirdTest {
// Class partition test with different status inputs
@Test
void Status504Test() {
Status status = Status.valueOf(504);
assertEquals(504, status.getStatusCode());
assertEquals("Gateway Timeout", status.getReasonPhrase());
}
@Test
void Status400Test() {
Status status = Status.valueOf(400);
assertEquals(400, status.getStatusCode());
assertEquals("Bad Request", status.getReasonPhrase());
}
@Test
void StatusStringTest() {
Status status = Status.valueOf(504);
assertEquals("504 Gateway Timeout", status.toString());
}

@Test
void StatusErrorTest() {
assertThrows(IllegalArgumentException.class, () -> {Status.valueOf(999);});
}
}