package cz.cvut.fel.adaptiverestfulapi.core;
import cz.cvut.fel.adaptiverestfulapi.core.HttpHeader;
import cz.cvut.fel.adaptiverestfulapi.core.HttpHeaderValue;
import cz.cvut.fel.adaptiverestfulapi.core.HttpHeaders;
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import java.lang.Exception;
import java.util.List;
import java.util.LinkedList;
public class HttpHeadersTest {
@DataProvider
public Object[][] Headers() {
List<HttpHeaderValue> values = new LinkedList<>();
values.add(new HttpHeaderValue("v3", 0.1));
values.add(new HttpHeaderValue("v2", 0.5));
values.add(new HttpHeaderValue("v1"));
HttpHeader header = HttpHeader.create("k1", values);
List<HttpHeader> headers = new LinkedList<>();
headers.add(header);
return new Object[][]{
{ new HttpHeaders(headers) }
};
}
@Test(dataProvider = "Headers")
public void testGet(HttpHeaders headers) throws Exception {
String result = headers.get("k1");
assert ("v1".equals(result)) : "" + result + " should be equal to v1 for k1.";
}
@Test(dataProvider = "Headers")
public void testContains(HttpHeaders headers) throws Exception {
assert (headers.contains("k1", "v1")) : "HTTP headers should contain value v1 for k1.";
assert (headers.contains("k1", "v2")) : "HTTP headers should contain value v2 for k1.";
assert (headers.contains("k1", "v3")) : "HTTP headers should contain value v3 for k1.";
assert (!headers.contains("k2", "w1")) : "HTTP headers should not contain value w1 for k2.";
}
@Test(dataProvider = "Headers")
public void testAdd(HttpHeaders headers) throws Exception {
headers.add("k3", new HttpHeaderValue("v1"));
assert (headers.contains("k3", "v1")) : "HTTP headers should contain value v1 for k3.";
headers.add("k3", new HttpHeaderValue("v2"));
assert (headers.contains("k3", "v2")) : "HTTP headers should contain value v2 for k3.";
headers.add("k3", new HttpHeaderValue("v3", 0.5));
assert (headers.contains("k3", "v3")) : "HTTP headers should contain value v3 for k3.";
headers.add("k3", "v4");
assert (headers.contains("k3", "v4")) : "HTTP headers should contain value v4 for k3.";
headers.add("k3", "v5;q=0.3");
assert (headers.contains("k3", "v5")) : "HTTP headers should contain value v5 for k3.";
headers.add("k3", "v6; q=0.3");
assert (headers.contains("k3", "v6")) : "HTTP headers should contain value v6 for k3.";
}
}