edu.htwm.vsp.phoebook.rest.client.HttpComponentsClient.java Source code

Java tutorial

Introduction

Here is the source code for edu.htwm.vsp.phoebook.rest.client.HttpComponentsClient.java

Source

package edu.htwm.vsp.phoebook.rest.client;

import edu.htwm.vsp.phone.service.PhoneNumber;
import edu.htwm.vsp.phone.service.PhoneUser;
import static java.net.HttpURLConnection.HTTP_CREATED;
import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
import static java.net.HttpURLConnection.HTTP_OK;
import org.apache.commons.lang.RandomStringUtils;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import org.junit.Test;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author adopleb, mbenndor
 */
public class HttpComponentsClient extends RestClient {
    /**
    * Testet, ob sich ein User anlegen kann und danach abgerufen werden kann.
    * Anschlieend wird getestet, dass ein User auch gelscht wird.
    */
    @Test
    public void testCreateAndDeleteUserAndGetUserInfo() throws Exception {

        // Testet das Anlegen eines Nutzers
        PhoneUser user = new PhoneUser("dieter");
        PhoneUser fetchedUser = verifyAddUser(user.getName(), HTTP_CREATED, xml);

        assertEquals(user.getName(), fetchedUser.getName());

        String userId = Integer.toString(fetchedUser.getId());

        // Testet, ob sich dieser Nutzer ber GET abrufen lsst und identisch mit dem erstellten User ist
        fetchedUser = verifyGetUserInfo(userId, HTTP_OK, xml);
        assertEquals(user.getName(), fetchedUser.getName());

        // Testet das Lschen
        verifyDeleteUser(userId, HTTP_OK);

        // User sollte danach nicht gefunden werden
        verifyGetUserInfo(userId, HTTP_NOT_FOUND, xml);

        // erneutes Lschen wird fehlschlagen
        verifyDeleteUser(userId, HTTP_NOT_FOUND);

        //verifyListAllUsers(HTTP_OK);
    }

    /**
     * Testet das Anlegen und Lschen von Telefonnummern
     */
    @Test
    public void addAndDeleteNumber() throws Exception {
        // Nutzer anlegen       
        PhoneUser user = new PhoneUser("dieter");
        PhoneUser fetchedUser = verifyAddUser(user.getName(), HTTP_CREATED, xml);

        // zufllige Nummer anlegen
        String phoneCaption = RandomStringUtils.randomAlphanumeric(10);
        String phoneNumber = RandomStringUtils.randomAlphanumeric(8);
        PhoneNumber newNumber = new PhoneNumber(phoneCaption, phoneNumber);
        user.setNumber(phoneCaption, phoneNumber);

        String userId = Integer.toString(fetchedUser.getId());

        // Nummer zu User speichern und prfen, dass dies enthalten ist
        fetchedUser = verifyAddNumber(userId, phoneCaption, phoneNumber, 201, xml);
        assertThat(fetchedUser.getPhoneNumbers().contains(newNumber), is(true));
        assertEquals(user.getPhoneNumbers(), fetchedUser.getPhoneNumbers());

        // Diese Nummer wieder lschen
        verifyDeleteNumber(userId, phoneCaption, HTTP_OK, xml);
        // ein weiteres Lschen sollte fehlschlagen
        verifyDeleteNumber(userId, phoneCaption, HTTP_NOT_FOUND, xml);

        // Nutzer wieder lschen
        verifyDeleteUser(userId, HTTP_OK);
    }
}