[mb-commits] r13665 - in search_server/trunk/servlet/src: main/java/org/musicbrainz/search/servlet/mmd2 test/java/org/musicbrainz/search/servlet
[email protected] Thu, 25 Apr 2013 20:54:54 +0000
| Newsgroups | gmane.comp.audio.musicbrainz.cvs |
|---|---|
| Message-ID | <E1UVTBu-0006Oj-UA@wiley> |
Author: ijabz
Date: 2013-04-25 20:54:39 +0000 (Thu, 25 Apr 2013)
New Revision: 13665
Modified:
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java
search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java
Log:
SEARCH-283#REGRESSION:"-" is returned instead of an empty list when there are no ISWCs for a work
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java 2013-04-25 20:53:17 UTC (rev 13664)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/WorkWriter.java 2013-04-25 20:54:39 UTC (rev 13665)
@@ -31,6 +31,7 @@
import org.musicbrainz.mmd2.*;
import org.musicbrainz.search.MbDocument;
import org.musicbrainz.search.index.MMDSerializer;
+import org.musicbrainz.search.index.RecordingIndexField;
import org.musicbrainz.search.index.WorkIndexField;
import org.musicbrainz.search.servlet.Result;
import org.musicbrainz.search.servlet.Results;
@@ -123,9 +124,13 @@
IswcList iswcList = of.createIswcList();
for (int i = 0; i < iswcs.length; i++)
{
- iswcList.getIswc().add(iswcs[i]);
+ if (isNotNoValue(iswcs[i])) {
+ iswcList.getIswc().add(iswcs[i]);
+ }
}
- work.setIswcList(iswcList);
+ if(iswcList.getIswc().size()>0) {
+ work.setIswcList(iswcList);
+ }
}
String artistRelation = doc.get(WorkIndexField.ARTIST_RELATION);
Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java 2013-04-25 20:53:17 UTC (rev 13664)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindWorkTest.java 2013-04-25 20:54:39 UTC (rev 13665)
@@ -92,6 +92,38 @@
writer.addDocument(doc.getLuceneDocument());
}
+ {
+ MbDocument doc = new MbDocument();
+ doc.addField(WorkIndexField.WORK_ID, "bba1da16-6a0d-3299-aacf-042f8e13b0b7");
+ doc.addField(WorkIndexField.WORK, "Debaser");
+ doc.addField(WorkIndexField.ARTIST_ID, "789f6768-5830-4b08-8b4f-f38566b2eb1d");
+ doc.addField(WorkIndexField.ARTIST, "Back Francis");
+ doc.addField(WorkIndexField.LYRICS_LANG, "esp");
+ doc.addField(WorkIndexField.TYPE, "Song");
+ doc.addField(WorkIndexField.ALIAS, "Debaser (Clif Norrell mix)");
+ doc.addField(WorkIndexField.ISWC, "-");
+
+
+ RelationList rl = of.createRelationList();
+ rl.setTargetType("artist");
+ {
+ Relation relation = of.createRelation();
+ AttributeList al = of.createAttributeList();
+ Artist artist = of.createArtist();
+ artist.setId("789f6768-5830-4b08-8b4f-f38566b2eb1d");
+ artist.setName("Black Francis");
+ artist.setSortName("Francis, Black");
+ relation.setArtist(artist);
+ relation.setType("composer");
+ relation.setDirection(DefDirection.BACKWARD);
+ al.getAttribute().add("additional");
+ relation.setAttributeList(al);
+ rl.getRelation().add(relation);
+ }
+ doc.addField(WorkIndexField.ARTIST_RELATION, MMDSerializer.serialize(rl));
+ writer.addDocument(doc.getLuceneDocument());
+ }
+
{
MbDocument doc = new MbDocument();
doc.addField(MetaIndexField.META, MetaIndexField.META_VALUE);
@@ -236,7 +268,28 @@
assertEquals("Symphony No. 5", doc.get(WorkIndexField.WORK));
}
+ @Test
+ public void testFindWorkByNoISWC() throws Exception {
+ Results res = ss.search("iswc:\\-", 0, 10);
+ assertEquals(1, res.getTotalHits());
+ Result result = res.results.get(0);
+ MbDocument doc = result.getDoc();
+ assertEquals("bba1da16-6a0d-3299-aacf-042f8e13b0b7", doc.get(WorkIndexField.WORK_ID));
+ }
+ @Test
+ public void testOutputNoISWCInXml() throws Exception {
+
+ Results res = ss.search("iswc:\\-", 0, 1);
+ ResultsWriter writer = ss.getMmd2Writer();
+ StringWriter sw = new StringWriter();
+ PrintWriter pr = new PrintWriter(sw);
+ writer.write(pr, res,SearchServerServlet.RESPONSE_XML, true);
+ pr.close();
+ String output = sw.toString();
+ System.out.println("Xml is" + output);
+ assertTrue(!output.contains("<iswc>"));
+ }
/**
* Tests
*