Package samplest.core

Source Code of samplest.core.PerRequestRecordingTest

package samplest.core;

import com.github.kevinsawicki.http.HttpRequest;
import com.google.common.base.Charsets;
import org.assertj.core.util.Files;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import restx.RestxContext;
import restx.tests.RestxServerRule;

import java.io.File;
import java.io.IOException;

import static org.assertj.core.api.Assertions.assertThat;

/**
* Date: 24/12/13
* Time: 14:16
*/
public class PerRequestRecordingTest {
    @ClassRule
    public static RestxServerRule server = new RestxServerRule();
    private File dir;

    @Before public void setup() throws IOException {
        dir = Files.newTemporaryFolder();
    }

    @After public void teardown() throws IOException {
        Files.delete(dir);
    }

    @Test
    public void should_record_with_uuids() throws Exception {
        HttpRequest httpRequest = server.client().authenticatedAs("admin")
                .GET("/api/uuids/random")
                .header("RestxMode", RestxContext.Modes.RECORDING)
                .header("RestxRecordPath", dir.getAbsolutePath())
                ;

        assertThat(httpRequest.code()).isEqualTo(200);
        assertThat(httpRequest.body()).isNotEmpty();

        File record = new File(dir, "001_GET_uuids_random.spec.yaml");
        waitForFileExists(record);


        assertThat(Files.contentOf(record, Charsets.UTF_8))
                .startsWith("title: 001 GET uuids/random")
                .contains("wts:\n" +
                        "  - when: |\n" +
                        "       GET uuids/random\n")
                .contains("- time: ")
                .contains("- uuids: ")
        ;
    }

    protected void waitForFileExists(File record) throws InterruptedException {
        // recorded spec is saved asynchronously, let's wait for it to be saved to disk
        int c = 50;
        while (!record.exists() && c >= 0) {
            Thread.sleep(50);
            c--;
        }
    }
}
TOP

Related Classes of samplest.core.PerRequestRecordingTest

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.