You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by ck...@apache.org on 2010/12/05 15:07:12 UTC

svn commit: r1042356 - in /abdera/java/trunk: ./ extensions/json/ extensions/json/src/main/java/org/apache/abdera/ext/json/ extensions/json/src/test/java/org/apache/abdera/ext/json/

Author: ckoppelt
Date: Sun Dec  5 14:07:11 2010
New Revision: 1042356

URL: http://svn.apache.org/viewvc?rev=1042356&view=rev
Log:
fixed nullpointers; added unit tests - preparing a refactoring

Removed:
    abdera/java/trunk/extensions/json/src/test/java/org/apache/abdera/ext/json/TestSuite.java
Modified:
    abdera/java/trunk/extensions/json/pom.xml
    abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONStream.java
    abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java
    abdera/java/trunk/extensions/json/src/test/java/org/apache/abdera/ext/json/JSONStreamTest.java
    abdera/java/trunk/pom.xml

Modified: abdera/java/trunk/extensions/json/pom.xml
URL: http://svn.apache.org/viewvc/abdera/java/trunk/extensions/json/pom.xml?rev=1042356&r1=1042355&r2=1042356&view=diff
==============================================================================
--- abdera/java/trunk/extensions/json/pom.xml (original)
+++ abdera/java/trunk/extensions/json/pom.xml Sun Dec  5 14:07:11 2010
@@ -38,5 +38,9 @@
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
     </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-all</artifactId>
+      </dependency>
   </dependencies>
 </project>

Modified: abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONStream.java
URL: http://svn.apache.org/viewvc/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONStream.java?rev=1042356&r1=1042355&r2=1042356&view=diff
==============================================================================
--- abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONStream.java (original)
+++ abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONStream.java Sun Dec  5 14:07:11 2010
@@ -40,8 +40,9 @@ public class JSONStream {
 
     private boolean isStart() {
         boolean b = sepstack.peek();
-        if (b)
+        if (b) {
             sepstack.set(sepstack.size() - 1, false);
+        }
         return b;
     }
 
@@ -62,8 +63,9 @@ public class JSONStream {
     }
 
     private void writeIndent() throws IOException {
-        for (int n = 0; n < depth; n++)
+        for (int n = 0; n < depth; n++) {
             writer.write(' ');
+        }
         writer.flush();
     }
 
@@ -122,8 +124,9 @@ public class JSONStream {
     }
 
     public void writeField(String name) throws IOException {
-        if (!isStart())
+        if (!isStart()) {
             writeSeparator();
+        }
         writeNewLine();
         writeIndent();
         writeQuoted(name);
@@ -131,23 +134,27 @@ public class JSONStream {
     }
 
     public void writeField(String name, Date value) throws IOException {
-        if (value != null)
+        if (value != null) {
             writeField(name, AtomDate.format(value));
+        }
     }
 
     public void writeField(String name, IRI value) throws IOException {
-        if (value != null)
+        if (value != null) {
             writeField(name, value.toASCIIString());
+        }
     }
 
     public void writeField(String name, MimeType value) throws IOException {
-        if (value != null)
+        if (value != null) {
             writeField(name, value.toString());
+        }
     }
 
     public void writeField(String name, EntityTag value) throws IOException {
-        if (value != null)
+        if (value != null) {
             writeField(name, value.toString());
+        }
     }
 
     public void writeField(String name, String value) throws IOException {

Modified: abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java
URL: http://svn.apache.org/viewvc/abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java?rev=1042356&r1=1042355&r2=1042356&view=diff
==============================================================================
--- abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java (original)
+++ abdera/java/trunk/extensions/json/src/main/java/org/apache/abdera/ext/json/JSONUtil.java Sun Dec  5 14:07:11 2010
@@ -58,10 +58,11 @@ public class JSONUtil {
 
     public static void toJson(Base base, Writer writer) throws IOException {
         JSONStream jstream = new JSONStream(writer);
-        if (base instanceof Document)
+        if (base instanceof Document) {
             toJson((Document)base, jstream);
-        else if (base instanceof Element)
+        } else if (base instanceof Element) {
             toJson((Element)base, jstream);
+        }
         writer.flush();
     }
 
@@ -74,10 +75,12 @@ public class JSONUtil {
         }
         IRI base = element.getResolvedBaseUri();
 
-        if (parentbase == null && base != null)
+        if (parentbase == null && base != null) {
             return false;
-        if (parentbase == null && base == null)
+        }
+        if (parentbase == null && base == null) {
             return true;
+        }
         return parentbase.equals(element.getResolvedBaseUri());
     }
 
@@ -94,8 +97,9 @@ public class JSONUtil {
                 jstream.startObject();
                 jstream.writeField("type", texttype.name().toLowerCase());
                 writeLanguageFields(element, jstream);
-                if (!isSameAsParentBase(element))
+                if (!isSameAsParentBase(element)) {
                     jstream.writeField("xml:base", element.getResolvedBaseUri());
+                }
                 jstream.endObject();
                 jstream.writeField("children");
                 switch (text.getTextType()) {
@@ -105,11 +109,19 @@ public class JSONUtil {
                         jstream.endArray();
                         break;
                     case HTML:
-                        Div div = HtmlHelper.parse(text.getValue());
-                        writeElementValue(div, jstream);
+                        if (text.getValue() != null) {
+                            Div div = HtmlHelper.parse(text.getValue());
+                            writeElementValue(div, jstream);
+                        } else {
+                            jstream.writeQuoted("");
+                        }
                         break;
                     case XHTML:
-                        writeElementValue(text.getValueElement(), jstream);
+                        if (text.getValueElement() != null) {
+                            writeElementValue(text.getValueElement(), jstream);
+                        } else {
+                            jstream.writeQuoted("");
+                        }
                         break;
                 }
                 jstream.endObject();
@@ -193,7 +205,7 @@ public class JSONUtil {
                 jstream.writeField("href", collection.getResolvedHref());
                 writeElement("title", collection.getTitleElement(), jstream);
                 String[] accepts = collection.getAccept();
-                if (accepts != null || accepts.length > 0) {
+                if (accepts != null && accepts.length > 0) {
                     jstream.writeField("accept");
                     jstream.startArray();
                     for (int n = 0; n < accepts.length; n++) {
@@ -211,8 +223,9 @@ public class JSONUtil {
             } else if (element instanceof Control) {
                 jstream.startObject();
                 writeLanguageFields(element, jstream);
-                if (!isSameAsParentBase(element))
+                if (!isSameAsParentBase(element)) {
                     jstream.writeField("xml:base", element.getResolvedBaseUri());
+                }
                 Control control = (Control)element;
                 jstream.writeField("draft", control.isDraft() ? "true" : "false");
                 writeExtensions((ExtensibleElement)element, jstream);
@@ -220,8 +233,9 @@ public class JSONUtil {
             } else if (element instanceof Entry) {
                 jstream.startObject();
                 writeLanguageFields(element, jstream);
-                if (!isSameAsParentBase(element))
+                if (!isSameAsParentBase(element)){
                     jstream.writeField("xml:base", element.getResolvedBaseUri());
+                }
                 Entry entry = (Entry)element;
                 jstream.writeField("id", entry.getId());
                 writeElement("title", entry.getTitleElement(), jstream);
@@ -243,8 +257,9 @@ public class JSONUtil {
             } else if (element instanceof Generator) {
                 jstream.startObject();
                 writeLanguageFields(element, jstream);
-                if (!isSameAsParentBase(element))
+                if (!isSameAsParentBase(element)) {
                     jstream.writeField("xml:base", element.getResolvedBaseUri());
+                }
                 Generator generator = (Generator)element;
                 jstream.writeField("version", generator.getVersion());
                 jstream.writeField("uri", generator.getResolvedUri());
@@ -253,16 +268,18 @@ public class JSONUtil {
             } else if (element instanceof Link) {
                 jstream.startObject();
                 writeLanguageFields(element, jstream);
-                if (!isSameAsParentBase(element))
+                if (!isSameAsParentBase(element)) {
                     jstream.writeField("xml:base", element.getResolvedBaseUri());
+                }
                 Link link = (Link)element;
                 jstream.writeField("href", link.getResolvedHref());
                 jstream.writeField("rel", link.getRel());
                 jstream.writeField("title", link.getTitle());
                 jstream.writeField("type", link.getMimeType());
                 jstream.writeField("hreflang", link.getHrefLang());
-                if (link.getLength() > -1)
+                if (link.getLength() > -1) {
                     jstream.writeField("length", link.getLength());
+                }
                 writeExtensions((ExtensibleElement)element, jstream);
                 jstream.endObject();
             } else if (element instanceof Person) {

Modified: abdera/java/trunk/extensions/json/src/test/java/org/apache/abdera/ext/json/JSONStreamTest.java
URL: http://svn.apache.org/viewvc/abdera/java/trunk/extensions/json/src/test/java/org/apache/abdera/ext/json/JSONStreamTest.java?rev=1042356&r1=1042355&r2=1042356&view=diff
==============================================================================
--- abdera/java/trunk/extensions/json/src/test/java/org/apache/abdera/ext/json/JSONStreamTest.java (original)
+++ abdera/java/trunk/extensions/json/src/test/java/org/apache/abdera/ext/json/JSONStreamTest.java Sun Dec  5 14:07:11 2010
@@ -17,18 +17,15 @@
  */
 package org.apache.abdera.ext.json;
 
+import static org.junit.Assert.assertTrue;
+import java.io.ByteArrayOutputStream;
+
 import org.apache.abdera.Abdera;
 import org.apache.abdera.i18n.iri.IRI;
 import org.apache.abdera.model.Entry;
 import org.apache.abdera.writer.Writer;
 import org.junit.Test;
 
-/**
- * JSONStreamTest
- * 
- * @author David Calavera
- * @since 11/01/08
- */
 public class JSONStreamTest {
 
     @Test
@@ -39,6 +36,11 @@ public class JSONStreamTest {
         entry.setContent(new IRI("http://example.org/xml"), "text/xml");
 
         Writer json = abdera.getWriterFactory().getWriter("json");
-        entry.writeTo(json, System.out);
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        entry.writeTo(json, outputStream);
+        String output = outputStream.toString();
+        assertTrue(output.contains("\"type\":\"text/xml\""));
+        assertTrue(output.contains("\"src\":\"http://example.org/xml\""));
+        assertTrue(output.contains("\"content\":"));
     }
 }

Modified: abdera/java/trunk/pom.xml
URL: http://svn.apache.org/viewvc/abdera/java/trunk/pom.xml?rev=1042356&r1=1042355&r2=1042356&view=diff
==============================================================================
--- abdera/java/trunk/pom.xml (original)
+++ abdera/java/trunk/pom.xml Sun Dec  5 14:07:11 2010
@@ -460,6 +460,13 @@
         <version>2.5</version>  
       </dependency>
       
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-all</artifactId>
+        <version>1.8.5</version>
+        <scope>test</scope>
+      </dependency>
+      
     </dependencies>
   </dependencyManagement>