Fix unit tests

This commit is contained in:
jamesagnew 2014-03-20 13:49:51 -04:00
parent 1fddb04fb3
commit 80826b62fd
7 changed files with 92 additions and 33 deletions

View File

@ -168,6 +168,13 @@
<version>0.8</version> <version>0.8</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>${hamcrest_version}</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<reporting> <reporting>

View File

@ -1,30 +1,37 @@
package ca.uhn.fhir.model.primitive; package ca.uhn.fhir.model.primitive;
import java.math.BigDecimal;
import ca.uhn.fhir.model.api.BasePrimitive; import ca.uhn.fhir.model.api.BasePrimitive;
import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.model.api.annotation.DatatypeDef;
import ca.uhn.fhir.model.api.annotation.SimpleSetter; import ca.uhn.fhir.model.api.annotation.SimpleSetter;
import ca.uhn.fhir.parser.DataFormatException; import ca.uhn.fhir.parser.DataFormatException;
/**
* Represents the FHIR ID type. This is the actual resource ID, meaning the ID that
* will be used in RESTful URLs, Resource References, etc. to represent a specific
* instance of a resource.
*
* <p>
* <b>Description</b>: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length
* limit of 36 characters.
* </p>
* <p>
* regex: [a-z0-9\-\.]{1,36}
* </p>
*/
@DatatypeDef(name = "id") @DatatypeDef(name = "id")
public class IdDt extends BasePrimitive<String> { public class IdDt extends BasePrimitive<String> {
private String myValue; private String myValue;
/** /**
* Create a new ID. * Create a new empty ID
*
* <p>
* <b>Description</b>:
* A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters.
* </p>
* <p>
* regex: [a-z0-9\-\.]{1,36}
* </p>
*/ */
public IdDt() { public IdDt() {
super(); super();
} }
/** /**
* Create a new ID using a long * Create a new ID using a long
*/ */
@ -33,21 +40,32 @@ public class IdDt extends BasePrimitive<String> {
} }
/** /**
* Create a new ID * Create a new ID using a string
* *
* <p> * <p>
* <b>Description</b>: * <b>Description</b>: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length
* A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters. * limit of 36 characters.
* </p> * </p>
* <p> * <p>
* regex: [a-z0-9\-\.]{1,36} * regex: [a-z0-9\-\.]{1,36}
* </p> * </p>
*/ */
@SimpleSetter @SimpleSetter
public IdDt(@SimpleSetter.Parameter(name="theId") String theValue) { public IdDt(@SimpleSetter.Parameter(name = "theId") String theValue) {
setValue(theValue); setValue(theValue);
} }
/**
* Create a new ID, using a BigDecimal input. Uses {@link BigDecimal#toPlainString()} to generate the string representation.
*/
public IdDt(BigDecimal thePid) {
if (thePid != null) {
setValue(thePid.toPlainString());
} else {
setValue(null);
}
}
@Override @Override
public String getValue() { public String getValue() {
return myValue; return myValue;
@ -60,14 +78,14 @@ public class IdDt extends BasePrimitive<String> {
/** /**
* Set the value * Set the value
* *
* <p> * <p>
* <b>Description</b>: * <b>Description</b>: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length
* A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters. * limit of 36 characters.
* </p> * </p>
* <p> * <p>
* regex: [a-z0-9\-\.]{1,36} * regex: [a-z0-9\-\.]{1,36}
* </p> * </p>
*/ */
@Override @Override
public void setValue(String theValue) throws DataFormatException { public void setValue(String theValue) throws DataFormatException {
@ -77,20 +95,20 @@ public class IdDt extends BasePrimitive<String> {
/** /**
* Set the value * Set the value
* *
* <p> * <p>
* <b>Description</b>: * <b>Description</b>: A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length
* A whole number in the range 0 to 2^64-1 (optionally represented in hex), a uuid, an oid, or any other combination of lowercase letters, numerals, "-" and ".", with a length limit of 36 characters. * limit of 36 characters.
* </p> * </p>
* <p> * <p>
* regex: [a-z0-9\-\.]{1,36} * regex: [a-z0-9\-\.]{1,36}
* </p> * </p>
*/ */
@Override @Override
public void setValueAsString(String theValue) throws DataFormatException { public void setValueAsString(String theValue) throws DataFormatException {
setValue(theValue); setValue(theValue);
} }
@Override @Override
public String toString() { public String toString() {
return myValue; return myValue;

View File

@ -16,6 +16,7 @@ import javax.xml.stream.events.XMLEvent;
import ca.uhn.fhir.context.ConfigurationException; import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.model.api.BasePrimitive; import ca.uhn.fhir.model.api.BasePrimitive;
import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.model.api.annotation.DatatypeDef;
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
import ca.uhn.fhir.parser.DataFormatException; import ca.uhn.fhir.parser.DataFormatException;
@DatatypeDef(name = "xhtml") @DatatypeDef(name = "xhtml")
@ -23,13 +24,43 @@ public class XhtmlDt extends BasePrimitive<List<XMLEvent>> {
private List<XMLEvent> myValue; private List<XMLEvent> myValue;
/**
* Constructor
*/
public XhtmlDt() {
// nothing
}
/**
* Constructor which accepts a string code
*
* @see #setValueAsString(String) for a description of how this value is applied
*/
@SimpleSetter()
public XhtmlDt(@SimpleSetter.Parameter(name = "theTextDiv") String theTextDiv) {
setValueAsString(theTextDiv);
}
/**
* Accepts a textual DIV and parses it into XHTML events which are stored internally.
* <p>
* <b>Formatting note:</b> The text will be trimmed {@link String#trim()}. If the text does not start with
* an HTML tag (generally this would be a div tag), a div tag will be automatically
* placed surrounding the text.
* </p>
*/
@Override @Override
public void setValueAsString(String theValue) throws DataFormatException { public void setValueAsString(String theValue) throws DataFormatException {
if (theValue == null) { if (theValue == null) {
myValue = null; myValue = null;
return; return;
} }
String val = "<a>" + theValue + "</a>";
String val = theValue.trim();
if (!val.startsWith("<")) {
val = "<div>" + val + "</div>";
}
try { try {
ArrayList<XMLEvent> value = new ArrayList<XMLEvent>(); ArrayList<XMLEvent> value = new ArrayList<XMLEvent>();
XMLEventReader er = XMLInputFactory.newInstance().createXMLEventReader(new StringReader(val)); XMLEventReader er = XMLInputFactory.newInstance().createXMLEventReader(new StringReader(val));

View File

@ -462,7 +462,8 @@ public class JsonParser extends BaseParser implements IParser {
} }
if (!haveContent) { if (!haveContent) {
theEventWriter.writeEnd(); // theEventWriter.writeEnd();
theEventWriter.flush(); // TODO: remove
theEventWriter.writeNull(); theEventWriter.writeNull();
} }
} }

View File

@ -7,7 +7,6 @@ import java.lang.reflect.Modifier;
import java.util.Collection; import java.util.Collection;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.StringTokenizer; import java.util.StringTokenizer;
@ -19,7 +18,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.hamcrest.core.IsNot;
import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.context.RuntimeResourceDefinition; import ca.uhn.fhir.context.RuntimeResourceDefinition;
@ -37,8 +35,8 @@ import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException; import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
import ca.uhn.fhir.rest.server.exceptions.MethodNotFoundException; import ca.uhn.fhir.rest.server.exceptions.MethodNotFoundException;
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException; import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
import ca.uhn.fhir.rest.server.provider.ServerProfileProvider;
import ca.uhn.fhir.rest.server.provider.ServerConformanceProvider; import ca.uhn.fhir.rest.server.provider.ServerConformanceProvider;
import ca.uhn.fhir.rest.server.provider.ServerProfileProvider;
public abstract class RestfulServer extends HttpServlet { public abstract class RestfulServer extends HttpServlet {

View File

@ -3,6 +3,7 @@ package ca.uhn.fhir.parser;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.List; import java.util.List;
@ -34,6 +35,8 @@ public class JsonParserTest {
UndeclaredExtension undeclaredExtension = undeclaredExtensions.get(0); UndeclaredExtension undeclaredExtension = undeclaredExtensions.get(0);
assertEquals("http://hl7.org/fhir/Profile/iso-21090#qualifier", undeclaredExtension.getUrl()); assertEquals("http://hl7.org/fhir/Profile/iso-21090#qualifier", undeclaredExtension.getUrl());
ctx.newJsonParser().setPrettyPrint(true).encodeResourceToWriter(obs, new OutputStreamWriter(System.out));
String encoded = ctx.newJsonParser().encodeResourceToString(obs); String encoded = ctx.newJsonParser().encodeResourceToString(obs);
ourLog.info(encoded); ourLog.info(encoded);

View File

@ -31,6 +31,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven_javadoc_plugin_version>2.9.1</maven_javadoc_plugin_version> <maven_javadoc_plugin_version>2.9.1</maven_javadoc_plugin_version>
<slf4j_version>1.6.6</slf4j_version> <slf4j_version>1.6.6</slf4j_version>
<hamcrest_version>1.3</hamcrest_version>
</properties> </properties>
<build> <build>