org.kisoonlineapp.uc.report.ReportICalVeranstaltungenTest.java Source code

Java tutorial

Introduction

Here is the source code for org.kisoonlineapp.uc.report.ReportICalVeranstaltungenTest.java

Source

/*
 * Copyright 2016 berni.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.kisoonlineapp.uc.report;

import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.Rule;
import org.junit.rules.ExpectedException;
import org.kisoonlineapp.model.Adresse;
import org.kisoonlineapp.model.AdresseBuilder;
import org.kisoonlineapp.model.DurationBuilder;
import org.kisoonlineapp.model.Veranstaltung;
import org.kisoonlineapp.model.VeranstaltungBuilder;
import org.kisoonlineapp.uc.view.AdresseView;
import org.kisoonlineapp.uc.view.BeschreibungView;
import org.kisoonlineapp.uc.view.VeranstaltungView;

/**
 *
 * @author berni
 */
public class ReportICalVeranstaltungenTest {

    ReportICalVeranstaltungen instance;
    @Rule
    public ExpectedException thrown = ExpectedException.none();
    final String CRLF = "\r\n";

    public ReportICalVeranstaltungenTest() {
    }

    @BeforeClass
    public static void setUpClass() {
    }

    @AfterClass
    public static void tearDownClass() {
    }

    @Before
    public void setUp() {
        instance = new ReportICalVeranstaltungen();
        instance.calBuilder = new CalBuilder();
        instance.calBuilder.adresseView = new AdresseView();
        instance.calBuilder.beschreibungView = new BeschreibungView();
        instance.calBuilder.veranstaltungView = new VeranstaltungView();

    }

    @After
    public void tearDown() {
    }

    /**
     * Test of generate method, of class ReportICalVeranstaltungen.
     */
    @Test
    public void testGenerate_1Veranstaltungen() throws Exception {
        Veranstaltung vg = new VeranstaltungBuilder().code("VG-CODE-1").beschreibung("VG Code 1 Beschreibung")
                .treffpunktAdresse(new AdresseBuilder().strasse("str").nummer("nr").plz("1234").ort("Ort")
                        .beschreibung("adrbeschr").build())
                .beginnEnde(new DurationBuilder().beginDateTime("2015-07-01 11:00:00")
                        .endDateTime("2015-07-01 12:00:00").build())
                .build();
        List<Veranstaltung> veranstaltungen = Arrays.asList(vg);
        ReportData result = instance.generate(veranstaltungen);
        assertNotNull(result);
        assertContainsLine(new String(result.getData()),
                Arrays.asList("BEGIN:VCALENDAR" + CRLF, "PRODID:-//Ben Fortuna//iCal4j 1.0.6//EN" + CRLF,
                        "VERSION:2.0" + CRLF, "CALSCALE:GREGORIAN" + CRLF, "BEGIN:VEVENT" + CRLF,
                        //"DTSTAMP:20160516T182134Z" + CRLF,
                        "DTSTAMP:", "DTSTART;TZID=Europe/Vienna:20150701T110000" + CRLF,
                        "DTEND;TZID=Europe/Vienna:20150701T120000" + CRLF, "SUMMARY:VG-CODE-1" + CRLF,
                        "LOCATION:adrbeschr\\; str nr\\, 1234 Ort" + CRLF,
                        //"UID:20160516T182134Z-1639385837@some-host-name" + CRLF,
                        "UID:", "DESCRIPTION:VG Code 1 Beschreibung" + CRLF, "END:VEVENT" + CRLF,
                        "END:VCALENDAR" + CRLF));
    }

    /**
     * Test of generate method, of class ReportICalVeranstaltungen.
     */
    @Test
    public void testGenerate_0Veranstaltungen() throws Exception {
        List<Veranstaltung> veranstaltungen = Arrays.asList();
        ReportData result = instance.generate(veranstaltungen);
        assertNotNull(result);
        assertEquals("", new String(result.getData()));
    }

    /**
     * Test of generate method, of class ReportICalVeranstaltungen.
     */
    @Test
    public void testGenerate_NPE() throws Exception {
        thrown.expect(NullPointerException.class);

        List<Veranstaltung> veranstaltungen = null;
        ReportData result = instance.generate(veranstaltungen);
        fail("Expected NPE");
    }

    void assertContainsLine(String content, List<String> lines) {
        int linenr = 0;
        for (String line : lines) {
            final String m = "" + linenr + " content: " + content + ": " + line;
            assertEquals(m, true, StringUtils.contains(content, line));
            linenr += 1;
        }
    }
}