fi.hsl.parkandride.itest.GenericReportITest.java Source code

Java tutorial

Introduction

Here is the source code for fi.hsl.parkandride.itest.GenericReportITest.java

Source

// Copyright  2015 HSL <https://www.hsl.fi>
// This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses.

package fi.hsl.parkandride.itest;

import com.jayway.restassured.http.ContentType;
import fi.hsl.parkandride.core.service.reporting.ReportParameters;
import fi.hsl.parkandride.front.UrlSchema;
import org.junit.Test;
import org.springframework.http.HttpStatus;

import static com.jayway.restassured.RestAssured.given;
import static fi.hsl.parkandride.front.ReportController.MEDIA_TYPE_EXCEL;

public class GenericReportITest extends AbstractReportingITest {

    @Test
    public void report_accessDenied() {
        given().contentType(ContentType.JSON).accept(MEDIA_TYPE_EXCEL)
                .header(authorization(devHelper.login(apiUser.username).token)).body(new ReportParameters()).when()
                .post(UrlSchema.REPORT, "FacilityUsage").then().assertThat()
                .statusCode(HttpStatus.FORBIDDEN.value());
    }

    @Test
    public void report_withException_resultsInBadRequest() {
        // Negative interval should throw exception
        final ReportParameters params = baseParams();
        params.interval = -1;
        given().contentType(ContentType.JSON).accept(MEDIA_TYPE_EXCEL)
                .header(authorization(devHelper.login(adminUser.username).token)).body(params).when()
                .post(UrlSchema.REPORT, "FacilityUsage").then().assertThat()
                .statusCode(HttpStatus.BAD_REQUEST.value());
    }

    @Test
    public void report_withConflictingDates_resultsInBadRequest() {
        // No params given -> IllegalArgumentException from fi.hsl.parkandride.core.service.reporting.FacilityUsageReportService
        final ReportParameters params = baseParams();
        params.interval = 100;
        params.startDate = BASE_DATE;
        params.endDate = BASE_DATE.minusDays(1);
        given().contentType(ContentType.JSON).accept(MEDIA_TYPE_EXCEL)
                .header(authorization(devHelper.login(adminUser.username).token)).body(params).when()
                .post(UrlSchema.REPORT, "FacilityUsage").then().assertThat()
                .statusCode(HttpStatus.BAD_REQUEST.value());
    }

    @Test
    public void report_incorrectType_resultsInBadRequest() {
        given().contentType(ContentType.JSON).accept(MEDIA_TYPE_EXCEL)
                .header(authorization(devHelper.login(adminUser.username).token)).body(baseParams()).when()
                .post(UrlSchema.REPORT, "foobar").then().assertThat().statusCode(HttpStatus.BAD_REQUEST.value());
    }

}