Skip to content

Commit

Permalink
ErrorDetailHttpMessageConverter accepts now MediaType in ctor
Browse files Browse the repository at this point in the history
  • Loading branch information
oboehm committed Nov 3, 2017
1 parent cb48bdf commit 3192267
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 7 deletions.
2 changes: 1 addition & 1 deletion service/src/main/java/gdv/xport/srv/config/AppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
converters.add(new DatenpaketHttpMessageConverter(MediaType.TEXT_PLAIN));
converters.add(new DatenpaketHttpMessageConverter(MediaType.APPLICATION_JSON, MediaType.APPLICATION_JSON_UTF8));
converters.add(new DatenpaketHttpMessageConverter(MEDIA_TYPE_TEXT_CSV));
converters.add(new ErrorDetailHttpMessageConverter());
converters.add(new ErrorDetailHttpMessageConverter(MediaType.TEXT_HTML));
LOG.info("Message converters {} are configured.", converters);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
* @author <a href="ob@aosd.de">oliver</a>
* @since 3.0.0 (14.10.17)
*/
public class DatenpaketHttpMessageConverter extends AbstractHttpMessageConverter<Datenpaket> {
public final class DatenpaketHttpMessageConverter extends AbstractHttpMessageConverter<Datenpaket> {

private static final Logger LOG = LogManager.getLogger(DatenpaketHttpMessageConverter.class);
private final AbstractFormatter formatter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,17 @@
* @author oboehm
* @since 3.0 (02.11.2017)
*/
public class ErrorDetailHttpMessageConverter extends AbstractHttpMessageConverter<ErrorDetail> {
public final class ErrorDetailHttpMessageConverter extends AbstractHttpMessageConverter<ErrorDetail> {

private static final Logger LOG = LogManager.getLogger(ErrorDetailHttpMessageConverter.class);

public ErrorDetailHttpMessageConverter() {
super(MediaType.TEXT_HTML);
/**
* Erzeugt eine MessageConverter fuer die angegebene Media-Typen.
*
* @param supportedMediaTypes unterstuetzte Media-Typen
*/
public ErrorDetailHttpMessageConverter(MediaType... supportedMediaTypes) {
super(supportedMediaTypes);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,17 @@ public final class DatenpaketHttpMessageConverterTest {

private static final Logger LOG = LogManager.getLogger(DatenpaketHttpMessageConverterTest.class);

/**
* Testmethode fuer {@link DatenpaketHttpMessageConverter#supports(Class)}.
*/
@Test
public void testSupports() {
DatenpaketHttpMessageConverter converter = new DatenpaketHttpMessageConverter(MediaType.TEXT_PLAIN);
assertThat(converter.supports(Datenpaket.class), is(true));
}

/**
* Als Text soll der urspruengliche Input eines Datenpakets wiede
* r
* Als Text soll der urspruengliche Input eines Datenpakets wieder
* ausgegeben werden.
*
* @throws IOException sollte nicht passieren
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package gdv.xport.srv.web.converter;/*
* Copyright (c) 2017 by Oliver Boehm
*
* 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.
*
* (c)reated 03.11.2017 by oboehm (ob@oasd.de)
*/

import gdv.xport.srv.web.*;
import org.junit.*;
import org.springframework.http.*;
import org.springframework.mock.http.*;

import java.io.*;
import java.net.*;
import java.nio.charset.*;

import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;

/**
* Unit-Tests fuer {@link ErrorDetailHttpMessageConverter}-Klasse.
*
* @author oboehm
* @since 3.0 (03.11.2017)
*/
public final class ErrorDetailHttpMessageConverterTest {

private static final ErrorDetail TEST_ERROR_DETAIL =
new ErrorDetail(URI.create("http://test"), HttpStatus.I_AM_A_TEAPOT, "coffee needed");

/**
* Testmethode fuer {@link ErrorDetailHttpMessageConverter#supports(Class)}.
*/
@Test
public void testSupports() {
ErrorDetailHttpMessageConverter converter = new ErrorDetailHttpMessageConverter(MediaType.TEXT_HTML);
assertThat(converter.supports(ErrorDetail.class), is(true));
}

/**
* Der HTML-Output sollte mit &lt;html&gt; anfangen.
*
* @throws IOException sollte nicht passieren
*/
@Test
public void writeInternalHTML() throws IOException {
ErrorDetailHttpMessageConverter converter = new ErrorDetailHttpMessageConverter(MediaType.TEXT_HTML);
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
converter.writeInternal(TEST_ERROR_DETAIL, outputMessage);
String output = outputMessage.getBodyAsString(StandardCharsets.ISO_8859_1);
assertThat(output, containsString("<html>"));
}

}

0 comments on commit 3192267

Please sign in to comment.