Package com.github.kristofa.test.http.file

Source Code of com.github.kristofa.test.http.file.HttpRequestFileReaderTest

package com.github.kristofa.test.http.file;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.io.File;
import java.util.Set;

import org.junit.Before;
import org.junit.Test;

import com.github.kristofa.test.http.HttpMessageHeader;
import com.github.kristofa.test.http.HttpRequest;
import com.github.kristofa.test.http.Method;
import com.github.kristofa.test.http.QueryParameter;

public class HttpRequestFileReaderTest {

    private final static String TEST_FILE_DIRECTORY = "target/test-classes/";

    private HttpRequestFileReaderImpl reader;

    @Before
    public void setup() {
        reader = new HttpRequestFileReaderImpl();
    }

    @Test
    public void testReadValidRequestNoEntity() {

        final HttpRequest request =
            reader.read(new File(TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_valid_file.txt"), new File(
                "unexisting_file.txt"));
        assertEquals(Method.POST, request.getMethod());
        assertEquals("/a/b", request.getPath());
        final Set<HttpMessageHeader> httpMessageHeaders = request.getHttpMessageHeaders();
        assertEquals(2, httpMessageHeaders.size());
        assertTrue(httpMessageHeaders.contains(new HttpMessageHeader("Content-Type", "application/json; charset=UTF-8")));
        assertTrue(httpMessageHeaders.contains(new HttpMessageHeader("Agent", "Eclipse")));
        final Set<QueryParameter> queryParameters = request.getQueryParameters();
        assertEquals(3, queryParameters.size());
        assertTrue(queryParameters.contains(new QueryParameter("a", "b")));
        assertTrue(queryParameters.contains(new QueryParameter("a", "c")));
        assertTrue(queryParameters.contains(new QueryParameter("c", "d")));
        assertNull(request.getContent());
    }

    @Test
    public void testReadValidRequestWithEntity() {

        final HttpRequest request =
            reader.read(new File(TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_valid_file.txt"), new File(
                TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_entity_valid_file.txt"));
        assertEquals(Method.POST, request.getMethod());
        assertEquals("/a/b", request.getPath());
        final Set<HttpMessageHeader> httpMessageHeaders = request.getHttpMessageHeaders();
        assertEquals(2, httpMessageHeaders.size());
        assertTrue(httpMessageHeaders.contains(new HttpMessageHeader("Content-Type", "application/json; charset=UTF-8")));
        assertTrue(httpMessageHeaders.contains(new HttpMessageHeader("Agent", "Eclipse")));
        final Set<QueryParameter> queryParameters = request.getQueryParameters();
        assertEquals(3, queryParameters.size());
        assertTrue(queryParameters.contains(new QueryParameter("a", "b")));
        assertTrue(queryParameters.contains(new QueryParameter("a", "c")));
        assertTrue(queryParameters.contains(new QueryParameter("c", "d")));
        assertNotNull(request.getContent());
    }

    @Test
    public void testReadValidRequestWithQueryParamWithEmptyValue() {
        final HttpRequest request =
            reader.read(new File(TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_empty_query_param_value.txt"), new File(
                TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_entity_valid_file.txt"));
        assertEquals(Method.POST, request.getMethod());
        assertEquals("/a/b", request.getPath());
        final Set<HttpMessageHeader> httpMessageHeaders = request.getHttpMessageHeaders();
        assertEquals(2, httpMessageHeaders.size());
        assertTrue(httpMessageHeaders.contains(new HttpMessageHeader("Content-Type", "application/json")));
        assertTrue(httpMessageHeaders.contains(new HttpMessageHeader("Agent", "Eclipse")));
        final Set<QueryParameter> queryParameters = request.getQueryParameters();
        assertEquals(3, queryParameters.size());
        assertTrue(queryParameters.contains(new QueryParameter("a", "b")));
        assertTrue(queryParameters.contains(new QueryParameter("a", "c")));
        assertTrue(queryParameters.contains(new QueryParameter("c", "")));
        assertNotNull(request.getContent());

    }

    @Test
    public void testReadInvalidFile_NotStartWithMethod() {
        try {
            reader.read(new File(TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_invalidFile1.txt"), new File(
                TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_entity_valid_file.txt"));
            fail("Expected exception.");
        } catch (final IllegalStateException e) {
            assertEquals("Unexpected value. Expected [Method] but was [HttpMessageHeader]", e.getMessage());
        }
    }

    @Test
    public void testReadInvalidFile_EndOfFileAfterHttpMessageHeader() {
        try {
            reader.read(new File(TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_invalidFile2.txt"), new File(
                TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_entity_valid_file.txt"));
            fail("Expected exception.");
        } catch (final IllegalStateException e) {
            assertEquals("Expected [Path] after [HttpMessageHeader] but got null", e.getMessage());
        }
    }

    @Test
    public void testReadInvalidFile_UnexpectedContentAfterQueryParams() {
        try {
            reader.read(new File(TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_invalidFile3.txt"), new File(
                TEST_FILE_DIRECTORY, "HttpRequestFileReaderTest_entity_valid_file.txt"));
            fail("Expected exception.");
        } catch (final IllegalStateException e) {
            assertEquals("Expected nothing after [QueryParameters] but got [UnexpectedSection]", e.getMessage());
        }
    }
}
TOP

Related Classes of com.github.kristofa.test.http.file.HttpRequestFileReaderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.