package org.webpieces.webserver.tags;
import org.junit.Before;
import org.junit.Test;
import org.webpieces.httpcommon.Requests;
import org.webpieces.httpcommon.api.RequestId;
import org.webpieces.httpcommon.api.RequestListener;
import org.webpieces.httpparser.api.dto.HttpRequest;
import org.webpieces.httpparser.api.dto.KnownHttpMethod;
import org.webpieces.httpparser.api.dto.KnownStatusCode;
import org.webpieces.util.file.VirtualFileClasspath;
import org.webpieces.webserver.ResponseExtract;
import org.webpieces.webserver.WebserverForTest;
import org.webpieces.webserver.test.FullResponse;
import org.webpieces.webserver.test.MockResponseSender;
import org.webpieces.webserver.test.PlatformOverridesForTest;
public class TestIfGenerator {
private MockResponseSender socket = new MockResponseSender();
private RequestListener server;
@Before
public void setUp() {
VirtualFileClasspath metaFile = new VirtualFileClasspath("tagsMeta.txt", WebserverForTest.class.getClassLoader());
WebserverForTest webserver = new WebserverForTest(new PlatformOverridesForTest(), null, false, metaFile);
server = webserver.start();
}
@Test
public void testIfTag() {
HttpRequest req = Requests.createRequest(KnownHttpMethod.GET, "/if");
server.incomingRequest(req, new RequestId(0), true, socket);
FullResponse response = ResponseExtract.assertSingleResponse(socket);
response.assertStatusCode(KnownStatusCode.HTTP_200_OK);
response.assertContains("This should exist");
response.assertNotContains("Negative1");
response.assertNotContains("Negative2");
}
@Test
public void testElseTag() {
HttpRequest req = Requests.createRequest(KnownHttpMethod.GET, "/else");
server.incomingRequest(req, new RequestId(0), true, socket);
FullResponse response = ResponseExtract.assertSingleResponse(socket);
response.assertStatusCode(KnownStatusCode.HTTP_200_OK);
response.assertNotContains("This should not exist");
response.assertContains("This should exist");
response.assertContains("Else1");
response.assertContains("Else2");
response.assertContains("Else3");
//add an assert for comments being taken out so this test will break as this can be nice for readability
response.assertContains("<body>\n Testing for else");
}
@Test
public void testElseIFTag() {
HttpRequest req = Requests.createRequest(KnownHttpMethod.GET, "/elseif");
server.incomingRequest(req, new RequestId(0), true, socket);
FullResponse response = ResponseExtract.assertSingleResponse(socket);
response.assertStatusCode(KnownStatusCode.HTTP_200_OK);
response.assertNotContains("This should not exist");
response.assertContains("This should exist");
response.assertContains("ElseIf1");
}
}