diff --git a/module/VuFindSearch/tests/unit-tests/fixtures/primo/response/retrieve b/module/VuFindSearch/tests/unit-tests/fixtures/primo/response/retrieve new file mode 100644 index 0000000000000000000000000000000000000000..65510e27893c189f57573b448ec12bf0f9672482 --- /dev/null +++ b/module/VuFindSearch/tests/unit-tests/fixtures/primo/response/retrieve @@ -0,0 +1,105 @@ +a:4:{s:11:"recordCount";i:1;s:9:"documents";a:1:{i:0;a:13:{s:8:"recordid";s:31:"crossref10.5755/j01.ss.71.1.377";s:5:"title";s:14:"Editorial Note";s:6:"format";s:7:"Article";s:7:"creator";a:1:{i:0;s:15:"Test, Test Test";}s:8:"ispartof";s:32:"Social Sciences, 2011, Vol.71(1)";s:11:"description";s:0:"";s:8:"language";s:0:"";s:6:"source";s:8:"CrossRef";s:10:"identifier";s:78:"<b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.1.377";s:8:"fulltext";s:11:"no_fulltext";s:4:"issn";a:2:{i:0;s:9:"1392-0758";i:1;s:8:"13920758";}s:3:"url";s:860:"http://trixie.brynmawr.edu:9003/swarth?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2014-08-07T09%3A00%3A59IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:&rft.genre=article&rft.atitle=Editorial%20Note&rft.jtitle=Social%20Sciences&rft.btitle=&rft.aulast=Test&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=Test%2C%20Test%20Test&rft.aucorp=&rft.date=20110520&rft.volume=71&rft.issue=1&rft.part=&rft.quarter=&rft.ssn=&rft.spage=5&rft.epage=6&rft.pages=5-6&rft.artnum=&rft.issn=1392-0758&rft.eissn=1392-0758&rft.isbn=&rft.sici=&rft.coden=&rft_id=info:doi/10.5755/j01.ss.71.1.377&rft.object_id=&rft.eisbn=&rft_dat=<crossref>10.5755/j01.ss.71.1.377</crossref><grp_id>3636354433954260500</grp_id><oa></oa>&rft_id=info:oai/&req.language=";s:10:"fullrecord";s:4484:"<record> + <control> + <sourcerecordid>10.5755/j01.ss.71.1.377</sourcerecordid> + <sourceid>crossref</sourceid> + <recordid>TN_crossref10.5755/j01.ss.71.1.377</recordid> + <sourceformat>XML</sourceformat> + <sourcesystem>Other</sourcesystem> + </control> + <display> + <type>article</type> + <title>Editorial Note</title> + <creator>Test, Test Test</creator> + <ispartof>Social Sciences, 2011, Vol.71(1)</ispartof> + <identifier><b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.1.377</identifier> + <source>CrossRef</source> + <lds40>20110520</lds40> + <lds42>20110520</lds42> + <lds44>2011</lds44> + <lds45>20110520</lds45> + <lds50>peer_reviewed</lds50> + </display> + <links> + <openurl>$$Topenurl_article</openurl> + <openurlfulltext>$$Topenurlfull_article</openurlfulltext> + <addlink>$$Uhttps://exlibris-pub.s3.amazonaws.com/aboutCrossref.html$$DView CrossRef copyright notice</addlink> + </links> + <search> + <creatorcontrib>Test, Test Test</creatorcontrib> + <title>Editorial Note</title> + <general>10.5755/j01.ss.71.1.377</general> + <sourceid>crossref</sourceid> + <recordid>crossref10.5755/j01.ss.71.1.377</recordid> + <issn>1392-0758</issn> + <issn>13920758</issn> + <rsrctype>article</rsrctype> + <creationdate>2011</creationdate> + <addtitle>Social Sciences</addtitle> + <addtitle>socscie</addtitle> + <searchscope>crossref_rest</searchscope> + <searchscope>CrossRef</searchscope> + <searchscope>Crossref</searchscope> + <searchscope>crossref</searchscope> + <scope>crossref_rest</scope> + <scope>CrossRef</scope> + <scope>Crossref</scope> + <scope>crossref</scope> + </search> + <sort> + <title>Editorial Note</title> + <author>Test, Test Test</author> + <creationdate>20110520</creationdate> + </sort> + <facets> + <frbrgroupid>3636354433954260500</frbrgroupid> + <frbrtype>6</frbrtype> + <creationdate>2011</creationdate> + <prefilter>articles</prefilter> + <rsrctype>articles</rsrctype> + <creatorcontrib>Test, Test Test</creatorcontrib> + <jtitle>Social Sciences</jtitle> + <toplevel>peer_reviewed</toplevel> + </facets> + <frbr> + <t>2</t> + <k1>2011</k1> + <k2>13920758</k2> + <k3>10.5755/j01.ss.71.1.377</k3> + <k4>71</k4> + <k5>1</k5> + <k6>5</k6> + <k7>social sciences</k7> + <k8>editorial note</k8> + <k9>editorialnote</k9> + <k15>testtesttest</k15> + <k16>testtesttest</k16> + </frbr> + <delivery> + <delcategory>Remote Search Resource</delcategory> + <fulltext>no_fulltext</fulltext> + </delivery> + <ranking> + <booster1>1</booster1> + <booster2>1</booster2> + <pcg_type>aggregator_crossref</pcg_type> + </ranking> + <addata> + <aulast>Test</aulast> + <aufirst>Test Test</aufirst> + <au>Test, Test Test</au> + <atitle>Editorial Note</atitle> + <jtitle>Social Sciences</jtitle> + <date>20110520</date> + <risdate>20110520</risdate> + <volume>71</volume> + <issue>1</issue> + <spage>5</spage> + <epage>6</epage> + <pages>5-6</pages> + <issn>1392-0758</issn> + <eissn>1392-0758</eissn> + <genre>article</genre> + <ristype>JOUR</ristype> + <doi>10.5755/j01.ss.71.1.377</doi> + </addata> + </record>";}}s:6:"facets";a:6:{s:7:"creator";a:1:{s:15:"Test, Test Test";s:1:"1";}s:5:"rtype";a:1:{s:8:"articles";s:1:"1";}s:6:"tlevel";a:1:{s:13:"peer_reviewed";s:1:"1";}s:7:"pfilter";a:1:{s:8:"articles";s:1:"1";}s:12:"creationdate";a:1:{i:2011;s:1:"1";}s:6:"jtitle";a:1:{s:15:"Social Sciences";s:1:"1";}}s:10:"didYouMean";a:1:{i:0;s:0:"";}} \ No newline at end of file diff --git a/module/VuFindSearch/tests/unit-tests/fixtures/primo/response/search b/module/VuFindSearch/tests/unit-tests/fixtures/primo/response/search new file mode 100644 index 0000000000000000000000000000000000000000..66f357b8ab95515c672d25ca6f7f94cebdb77514 --- /dev/null +++ b/module/VuFindSearch/tests/unit-tests/fixtures/primo/response/search @@ -0,0 +1,312 @@ +a:4:{s:11:"recordCount";i:5706;s:9:"documents";a:3:{i:0;a:13:{s:8:"recordid";s:31:"crossref10.5755/j01.ss.71.1.377";s:5:"title";s:14:"Editorial Note";s:6:"format";s:7:"Article";s:7:"creator";a:1:{i:0;s:15:"Test, Test Test";}s:8:"ispartof";s:32:"Social Sciences, 2011, Vol.71(1)";s:11:"description";s:0:"";s:8:"language";s:0:"";s:6:"source";s:8:"CrossRef";s:10:"identifier";s:78:"<b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.1.377";s:8:"fulltext";s:11:"no_fulltext";s:4:"issn";a:2:{i:0;s:9:"1392-0758";i:1;s:8:"13920758";}s:3:"url";s:860:"http://trixie.brynmawr.edu:9003/swarth?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2014-08-07T09%3A01%3A05IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:&rft.genre=article&rft.atitle=Editorial%20Note&rft.jtitle=Social%20Sciences&rft.btitle=&rft.aulast=Test&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=Test%2C%20Test%20Test&rft.aucorp=&rft.date=20110520&rft.volume=71&rft.issue=1&rft.part=&rft.quarter=&rft.ssn=&rft.spage=5&rft.epage=6&rft.pages=5-6&rft.artnum=&rft.issn=1392-0758&rft.eissn=1392-0758&rft.isbn=&rft.sici=&rft.coden=&rft_id=info:doi/10.5755/j01.ss.71.1.377&rft.object_id=&rft.eisbn=&rft_dat=<crossref>10.5755/j01.ss.71.1.377</crossref><grp_id>3636354433954260500</grp_id><oa></oa>&rft_id=info:oai/&req.language=";s:10:"fullrecord";s:4484:"<record> + <control> + <sourcerecordid>10.5755/j01.ss.71.1.377</sourcerecordid> + <sourceid>crossref</sourceid> + <recordid>TN_crossref10.5755/j01.ss.71.1.377</recordid> + <sourceformat>XML</sourceformat> + <sourcesystem>Other</sourcesystem> + </control> + <display> + <type>article</type> + <title>Editorial Note</title> + <creator>Test, Test Test</creator> + <ispartof>Social Sciences, 2011, Vol.71(1)</ispartof> + <identifier><b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.1.377</identifier> + <source>CrossRef</source> + <lds40>20110520</lds40> + <lds42>20110520</lds42> + <lds44>2011</lds44> + <lds45>20110520</lds45> + <lds50>peer_reviewed</lds50> + </display> + <links> + <openurl>$$Topenurl_article</openurl> + <openurlfulltext>$$Topenurlfull_article</openurlfulltext> + <addlink>$$Uhttps://exlibris-pub.s3.amazonaws.com/aboutCrossref.html$$DView CrossRef copyright notice</addlink> + </links> + <search> + <creatorcontrib>Test, Test Test</creatorcontrib> + <title>Editorial Note</title> + <general>10.5755/j01.ss.71.1.377</general> + <sourceid>crossref</sourceid> + <recordid>crossref10.5755/j01.ss.71.1.377</recordid> + <issn>1392-0758</issn> + <issn>13920758</issn> + <rsrctype>article</rsrctype> + <creationdate>2011</creationdate> + <addtitle>Social Sciences</addtitle> + <addtitle>socscie</addtitle> + <searchscope>crossref_rest</searchscope> + <searchscope>CrossRef</searchscope> + <searchscope>Crossref</searchscope> + <searchscope>crossref</searchscope> + <scope>crossref_rest</scope> + <scope>CrossRef</scope> + <scope>Crossref</scope> + <scope>crossref</scope> + </search> + <sort> + <title>Editorial Note</title> + <author>Test, Test Test</author> + <creationdate>20110520</creationdate> + </sort> + <facets> + <frbrgroupid>3636354433954260500</frbrgroupid> + <frbrtype>6</frbrtype> + <creationdate>2011</creationdate> + <prefilter>articles</prefilter> + <rsrctype>articles</rsrctype> + <creatorcontrib>Test, Test Test</creatorcontrib> + <jtitle>Social Sciences</jtitle> + <toplevel>peer_reviewed</toplevel> + </facets> + <frbr> + <t>2</t> + <k1>2011</k1> + <k2>13920758</k2> + <k3>10.5755/j01.ss.71.1.377</k3> + <k4>71</k4> + <k5>1</k5> + <k6>5</k6> + <k7>social sciences</k7> + <k8>editorial note</k8> + <k9>editorialnote</k9> + <k15>testtesttest</k15> + <k16>testtesttest</k16> + </frbr> + <delivery> + <delcategory>Remote Search Resource</delcategory> + <fulltext>no_fulltext</fulltext> + </delivery> + <ranking> + <booster1>1</booster1> + <booster2>1</booster2> + <pcg_type>aggregator_crossref</pcg_type> + </ranking> + <addata> + <aulast>Test</aulast> + <aufirst>Test Test</aufirst> + <au>Test, Test Test</au> + <atitle>Editorial Note</atitle> + <jtitle>Social Sciences</jtitle> + <date>20110520</date> + <risdate>20110520</risdate> + <volume>71</volume> + <issue>1</issue> + <spage>5</spage> + <epage>6</epage> + <pages>5-6</pages> + <issn>1392-0758</issn> + <eissn>1392-0758</eissn> + <genre>article</genre> + <ristype>JOUR</ristype> + <doi>10.5755/j01.ss.71.1.377</doi> + </addata> + </record>";}i:1;a:13:{s:8:"recordid";s:31:"crossref10.5755/j01.ss.71.2.533";s:5:"title";s:14:"Editorial Note";s:6:"format";s:7:"Article";s:7:"creator";a:1:{i:0;s:15:"Test, Test Test";}s:8:"ispartof";s:32:"Social Sciences, 2011, Vol.71(2)";s:11:"description";s:0:"";s:8:"language";s:0:"";s:6:"source";s:8:"CrossRef";s:10:"identifier";s:78:"<b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.2.533";s:8:"fulltext";s:11:"no_fulltext";s:4:"issn";a:2:{i:0;s:9:"1392-0758";i:1;s:8:"13920758";}s:3:"url";s:856:"http://trixie.brynmawr.edu:9003/swarth?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2014-08-07T09%3A01%3A05IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:&rft.genre=article&rft.atitle=Editorial%20Note&rft.jtitle=Social%20Sciences&rft.btitle=&rft.aulast=Test&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=Test%2C%20Test%20Test&rft.aucorp=&rft.date=20110810&rft.volume=71&rft.issue=2&rft.part=&rft.quarter=&rft.ssn=&rft.spage=5&rft.epage=&rft.pages=&rft.artnum=&rft.issn=1392-0758&rft.eissn=1392-0758&rft.isbn=&rft.sici=&rft.coden=&rft_id=info:doi/10.5755/j01.ss.71.2.533&rft.object_id=&rft.eisbn=&rft_dat=<crossref>10.5755/j01.ss.71.2.533</crossref><grp_id>4168188511594702733</grp_id><oa></oa>&rft_id=info:oai/&req.language=";s:10:"fullrecord";s:4416:"<record> + <control> + <sourcerecordid>10.5755/j01.ss.71.2.533</sourcerecordid> + <sourceid>crossref</sourceid> + <recordid>TN_crossref10.5755/j01.ss.71.2.533</recordid> + <sourceformat>XML</sourceformat> + <sourcesystem>Other</sourcesystem> + </control> + <display> + <type>article</type> + <title>Editorial Note</title> + <creator>Test, Test Test</creator> + <ispartof>Social Sciences, 2011, Vol.71(2)</ispartof> + <identifier><b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.2.533</identifier> + <source>CrossRef</source> + <lds40>20110810</lds40> + <lds42>20110810</lds42> + <lds44>2011</lds44> + <lds45>20110810</lds45> + <lds50>peer_reviewed</lds50> + </display> + <links> + <openurl>$$Topenurl_article</openurl> + <openurlfulltext>$$Topenurlfull_article</openurlfulltext> + <addlink>$$Uhttps://exlibris-pub.s3.amazonaws.com/aboutCrossref.html$$DView CrossRef copyright notice</addlink> + </links> + <search> + <creatorcontrib>Test, Test Test</creatorcontrib> + <title>Editorial Note</title> + <general>10.5755/j01.ss.71.2.533</general> + <sourceid>crossref</sourceid> + <recordid>crossref10.5755/j01.ss.71.2.533</recordid> + <issn>1392-0758</issn> + <issn>13920758</issn> + <rsrctype>article</rsrctype> + <creationdate>2011</creationdate> + <addtitle>Social Sciences</addtitle> + <addtitle>socscie</addtitle> + <searchscope>crossref_rest</searchscope> + <searchscope>CrossRef</searchscope> + <searchscope>Crossref</searchscope> + <searchscope>crossref</searchscope> + <scope>crossref_rest</scope> + <scope>CrossRef</scope> + <scope>Crossref</scope> + <scope>crossref</scope> + </search> + <sort> + <title>Editorial Note</title> + <author>Test, Test Test</author> + <creationdate>20110810</creationdate> + </sort> + <facets> + <frbrgroupid>4168188511594702733</frbrgroupid> + <frbrtype>6</frbrtype> + <creationdate>2011</creationdate> + <prefilter>articles</prefilter> + <rsrctype>articles</rsrctype> + <creatorcontrib>Test, Test Test</creatorcontrib> + <jtitle>Social Sciences</jtitle> + <toplevel>peer_reviewed</toplevel> + </facets> + <frbr> + <t>2</t> + <k1>2011</k1> + <k2>13920758</k2> + <k3>10.5755/j01.ss.71.2.533</k3> + <k4>71</k4> + <k5>2</k5> + <k6>5</k6> + <k7>social sciences</k7> + <k8>editorial note</k8> + <k9>editorialnote</k9> + <k15>testtesttest</k15> + <k16>testtesttest</k16> + </frbr> + <delivery> + <delcategory>Remote Search Resource</delcategory> + <fulltext>no_fulltext</fulltext> + </delivery> + <ranking> + <booster1>1</booster1> + <booster2>1</booster2> + <pcg_type>aggregator_crossref</pcg_type> + </ranking> + <addata> + <aulast>Test</aulast> + <aufirst>Test Test</aufirst> + <au>Test, Test Test</au> + <atitle>Editorial Note</atitle> + <jtitle>Social Sciences</jtitle> + <date>20110810</date> + <risdate>20110810</risdate> + <volume>71</volume> + <issue>2</issue> + <spage>5</spage> + <issn>1392-0758</issn> + <eissn>1392-0758</eissn> + <genre>article</genre> + <ristype>JOUR</ristype> + <doi>10.5755/j01.ss.71.2.533</doi> + </addata> + </record>";}i:2;a:13:{s:8:"recordid";s:31:"crossref10.5755/j01.ss.71.2.544";s:5:"title";s:70:"Requirements for the Articles to be Published in ‘Social Sciences’";s:6:"format";s:7:"Article";s:7:"creator";a:1:{i:0;s:15:"Test, Test Test";}s:8:"ispartof";s:32:"Social Sciences, 2011, Vol.71(2)";s:11:"description";s:0:"";s:8:"language";s:0:"";s:6:"source";s:8:"CrossRef";s:10:"identifier";s:78:"<b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.2.544";s:8:"fulltext";s:11:"no_fulltext";s:4:"issn";a:2:{i:0;s:9:"1392-0758";i:1;s:8:"13920758";}s:3:"url";s:938:"http://trixie.brynmawr.edu:9003/swarth?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2014-08-07T09%3A01%3A05IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:&rft.genre=article&rft.atitle=Requirements%20for%20the%20Articles%20to%20be%20Published%20in%20‘Social%20Sciences’&rft.jtitle=Social%20Sciences&rft.btitle=&rft.aulast=Test&rft.auinit=&rft.auinit1=&rft.auinitm=&rft.ausuffix=&rft.au=Test%2C%20Test%20Test&rft.aucorp=&rft.date=20110810&rft.volume=71&rft.issue=2&rft.part=&rft.quarter=&rft.ssn=&rft.spage=94&rft.epage=104&rft.pages=94-104&rft.artnum=&rft.issn=1392-0758&rft.eissn=1392-0758&rft.isbn=&rft.sici=&rft.coden=&rft_id=info:doi/10.5755/j01.ss.71.2.544&rft.object_id=&rft.eisbn=&rft_dat=<crossref>10.5755/j01.ss.71.2.544</crossref><grp_id>5071027353088877618</grp_id><oa></oa>&rft_id=info:oai/&req.language=";s:10:"fullrecord";s:4838:"<record> + <control> + <sourcerecordid>10.5755/j01.ss.71.2.544</sourcerecordid> + <sourceid>crossref</sourceid> + <recordid>TN_crossref10.5755/j01.ss.71.2.544</recordid> + <sourceformat>XML</sourceformat> + <sourcesystem>Other</sourcesystem> + </control> + <display> + <type>article</type> + <title>Requirements for the Articles to be Published in ‘Social Sciences’</title> + <creator>Test, Test Test</creator> + <ispartof>Social Sciences, 2011, Vol.71(2)</ispartof> + <identifier><b>ISSN:</b> 1392-0758 ; <b>DOI:</b> http://dx.doi.org/10.5755/j01.ss.71.2.544</identifier> + <source>CrossRef</source> + <lds40>20110810</lds40> + <lds42>20110810</lds42> + <lds44>2011</lds44> + <lds45>20110810</lds45> + <lds50>peer_reviewed</lds50> + </display> + <links> + <openurl>$$Topenurl_article</openurl> + <openurlfulltext>$$Topenurlfull_article</openurlfulltext> + <addlink>$$Uhttps://exlibris-pub.s3.amazonaws.com/aboutCrossref.html$$DView CrossRef copyright notice</addlink> + </links> + <search> + <creatorcontrib>Test, Test Test</creatorcontrib> + <title>Requirements for the Articles to be Published in ‘Social Sciences’</title> + <general>10.5755/j01.ss.71.2.544</general> + <sourceid>crossref</sourceid> + <recordid>crossref10.5755/j01.ss.71.2.544</recordid> + <issn>1392-0758</issn> + <issn>13920758</issn> + <rsrctype>article</rsrctype> + <creationdate>2011</creationdate> + <addtitle>Social Sciences</addtitle> + <addtitle>socscie</addtitle> + <searchscope>crossref_rest</searchscope> + <searchscope>CrossRef</searchscope> + <searchscope>Crossref</searchscope> + <searchscope>crossref</searchscope> + <scope>crossref_rest</scope> + <scope>CrossRef</scope> + <scope>Crossref</scope> + <scope>crossref</scope> + </search> + <sort> + <title>Requirements for the Articles to be Published in ‘Social Sciences’</title> + <author>Test, Test Test</author> + <creationdate>20110810</creationdate> + </sort> + <facets> + <frbrgroupid>5071027353088877618</frbrgroupid> + <frbrtype>6</frbrtype> + <creationdate>2011</creationdate> + <prefilter>articles</prefilter> + <rsrctype>articles</rsrctype> + <creatorcontrib>Test, Test Test</creatorcontrib> + <jtitle>Social Sciences</jtitle> + <toplevel>peer_reviewed</toplevel> + </facets> + <frbr> + <t>2</t> + <k1>2011</k1> + <k2>13920758</k2> + <k3>10.5755/j01.ss.71.2.544</k3> + <k4>71</k4> + <k5>2</k5> + <k6>94</k6> + <k7>social sciences</k7> + <k8>requirements for the articles to be published in ‘social sciences’</k8> + <k9>requirementsforthearnces’</k9> + <k12>requirementsforthearticle</k12> + <k15>testtesttest</k15> + <k16>testtesttest</k16> + </frbr> + <delivery> + <delcategory>Remote Search Resource</delcategory> + <fulltext>no_fulltext</fulltext> + </delivery> + <ranking> + <booster1>1</booster1> + <booster2>1</booster2> + <pcg_type>aggregator_crossref</pcg_type> + </ranking> + <addata> + <aulast>Test</aulast> + <aufirst>Test Test</aufirst> + <au>Test, Test Test</au> + <atitle>Requirements for the Articles to be Published in ‘Social Sciences’</atitle> + <jtitle>Social Sciences</jtitle> + <date>20110810</date> + <risdate>20110810</risdate> + <volume>71</volume> + <issue>2</issue> + <spage>94</spage> + <epage>104</epage> + <pages>94-104</pages> + <issn>1392-0758</issn> + <eissn>1392-0758</eissn> + <genre>article</genre> + <ristype>JOUR</ristype> + <doi>10.5755/j01.ss.71.2.544</doi> + </addata> + </record>";}}s:6:"facets";a:9:{s:7:"creator";a:19:{s:10:"Test, Alan";s:2:"45";s:10:"Test, D.W.";s:2:"58";s:11:"Test, David";s:2:"61";s:14:"Caskey, Rachel";s:1:"1";s:11:"Test, E. M.";s:1:"4";s:14:"Wood, Wendy M.";s:2:"20";s:8:"Test, DW";s:2:"54";s:11:"Test, D. W.";s:2:"54";s:12:"Angell, Beth";s:1:"1";s:16:"Mason, Christine";s:1:"1";s:12:"Neale, Melia";s:1:"4";s:13:"Konrad, Moira";s:1:"8";s:14:"Test, Mary Ann";s:2:"26";s:16:"Kelley, Kelly R.";s:1:"4";s:10:"Test, Test";s:1:"6";s:15:"Hughes, Carolyn";s:1:"1";s:13:"Test, David W";s:3:"104";s:15:"Test, Test Test";s:2:"12";s:10:"Test, S.T.";s:2:"21";}s:4:"lang";a:9:{s:3:"kor";s:1:"1";s:3:"ita";s:1:"3";s:3:"chi";s:2:"46";s:3:"rus";s:1:"8";s:3:"ger";s:1:"3";s:3:"jpn";s:2:"25";s:3:"eng";s:4:"1405";s:3:"fre";s:1:"7";s:3:"spa";s:1:"6";}s:5:"rtype";a:10:{s:15:"legal_documents";s:1:"1";s:5:"books";s:2:"64";s:7:"reviews";s:2:"27";s:8:"articles";s:4:"1136";s:17:"technical_reports";s:4:"2586";s:4:"maps";s:1:"2";s:13:"Dissertations";s:1:"8";s:14:"text_resources";s:4:"1471";s:22:"conference_proceedings";s:3:"292";s:18:"newspaper_articles";s:3:"162";}s:5:"topic";a:20:{s:2:"Us";s:2:"31";s:13:"United States";s:3:"137";s:17:"Special Education";s:2:"27";s:22:"Special Needs Students";s:1:"5";s:29:"Simian Immunodeficiency Virus";s:1:"2";s:6:"Humans";s:2:"13";s:10:"Guidelines";s:2:"20";s:7:"Suicide";s:1:"1";s:30:"Individualized Education Plans";s:1:"3";s:15:"Sales & Selling";s:2:"29";s:13:"Schizophrenia";s:2:"11";s:17:"Disabled Students";s:2:"19";s:11:"Neutrophils";s:2:"10";s:12:"Disabilities";s:2:"46";s:16:"Sales Management";s:2:"17";s:10:"Transition";s:1:"7";s:11:"Trade Shows";s:1:"8";s:20:"High School Students";s:2:"11";s:11:"Salespeople";s:2:"25";s:16:"Teaching Methods";s:2:"24";}s:6:"tlevel";a:2:{s:16:"online_resources";s:4:"2541";s:13:"peer_reviewed";s:3:"517";}s:7:"pfilter";a:8:{s:15:"legal_documents";s:1:"1";s:5:"books";s:4:"1507";s:7:"reviews";s:2:"27";s:8:"articles";s:4:"1151";s:4:"maps";s:1:"2";s:13:"Dissertations";s:1:"8";s:22:"conference_proceedings";s:3:"292";s:18:"newspaper_articles";s:3:"162";}s:12:"creationdate";a:69:{i:2008;s:3:"132";i:2009;s:3:"122";i:2006;s:2:"81";i:2007;s:3:"120";i:2004;s:3:"105";i:2005;s:3:"201";i:2002;s:2:"78";i:2003;s:2:"43";i:1930;s:1:"1";i:1970;s:3:"241";i:1971;s:3:"200";i:1972;s:3:"177";i:1973;s:3:"108";i:1974;s:2:"96";i:1975;s:2:"77";i:1976;s:2:"77";i:1977;s:2:"63";i:2012;s:2:"84";i:1978;s:2:"53";i:2011;s:3:"136";i:1979;s:2:"55";i:2010;s:3:"113";i:2013;s:2:"70";i:2014;s:2:"21";i:1900;s:1:"5";i:1990;s:2:"95";i:1940;s:1:"6";i:1982;s:2:"74";i:1983;s:2:"75";i:1980;s:2:"71";i:1981;s:3:"102";i:1986;s:2:"43";i:1987;s:2:"56";i:1984;s:2:"63";i:1985;s:2:"87";i:1988;s:2:"37";i:1989;s:2:"69";i:1910;s:1:"1";i:1959;s:2:"26";i:1958;s:2:"27";i:1957;s:2:"17";i:1956;s:2:"11";i:1955;s:2:"14";i:1954;s:1:"9";i:1953;s:1:"6";i:1952;s:1:"6";i:1951;s:1:"9";i:1950;s:2:"23";i:1995;s:2:"49";i:1996;s:2:"61";i:1997;s:2:"45";i:1998;s:2:"66";i:1991;s:3:"113";i:1992;s:3:"112";i:1993;s:3:"139";i:1994;s:3:"148";i:1999;s:2:"84";i:1967;s:3:"152";i:1966;s:3:"145";i:1969;s:3:"184";i:1968;s:3:"169";i:1963;s:3:"160";i:1962;s:3:"119";i:1965;s:3:"125";i:1964;s:3:"118";i:1961;s:3:"151";i:1960;s:2:"31";i:2001;s:2:"85";i:2000;s:2:"78";}s:6:"domain";a:18:{s:55:"NARCIS (Royal Netherlands Academy of Arts and Sciences)";s:1:"2";s:33:"Literature Resource Center (Gale)";s:1:"3";s:49:"Arts & Humanities Citation Index (Web of Science)";s:1:"6";s:13:"SAGE Journals";s:2:"26";s:5:"JSTOR";s:2:"46";s:30:"ERIC (U.S. Dept. of Education)";s:3:"245";s:33:"SciVerse ScienceDirect (Elsevier)";s:2:"50";s:48:"Science Citation Index Expanded (Web of Science)";s:2:"72";s:66:"DTIC Technical Reports (U.S. Defense Technical Information Center)";s:4:"3999";s:62:"American Association for the Advancement of Science (CrossRef)";s:1:"5";s:12:"SpringerLink";s:2:"14";s:47:"Social Sciences Citation Index (Web of Science)";s:2:"78";s:36:"Berkeley Electronic Press (CrossRef)";s:1:"2";s:13:"MEDLINE (NLM)";s:3:"116";s:32:"Duke University Press (CrossRef)";s:1:"1";s:28:"Sage Publications (CrossRef)";s:2:"57";s:49:"PsycARTICLES (American Psychological Association)";s:1:"9";s:14:"OneFile (GALE)";s:3:"514";}s:6:"jtitle";a:19:{s:25:"Journal of Rehabilitation";s:1:"8";s:21:"Engineering Economics";s:1:"4";s:33:"Intervention In School And Clinic";s:1:"4";s:7:"Vaccine";s:1:"4";s:37:"Remedial and special education : RASE";s:1:"6";s:15:"Library Journal";s:1:"2";s:5:"Chest";s:2:"13";s:22:"Schizophrenia Bulletin";s:1:"9";s:7:"Science";s:2:"10";s:30:"American Journal of Psychiatry";s:1:"4";s:33:"Maternal and Child Health Journal";s:1:"2";s:19:"Photo District News";s:1:"3";s:13:"Chest Journal";s:1:"9";s:30:"Remedial and Special Education";s:2:"16";s:8:"Quadrant";s:1:"2";s:20:"Exceptional Children";s:2:"10";s:15:"Social Sciences";s:1:"6";s:17:"American Salesman";s:2:"33";s:24:"Science (new york, n.y.)";s:1:"5";}}s:10:"didYouMean";a:1:{i:0;s:0:"";}} \ No newline at end of file diff --git a/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Primo/BackendTest.php b/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Primo/BackendTest.php new file mode 100644 index 0000000000000000000000000000000000000000..94b880d2858a14dc0df5fb7560973ecffe7b0a77 --- /dev/null +++ b/module/VuFindSearch/tests/unit-tests/src/VuFindTest/Backend/Primo/BackendTest.php @@ -0,0 +1,168 @@ +<?php + +/** + * Unit tests for Primo backend. + * + * PHP version 5 + * + * Copyright (C) Villanova University 2010. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * @category VuFind2 + * @package Search + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org + */ + +namespace VuFindTest\Backend\Primo; + +use VuFindSearch\Backend\Primo\Backend; +use VuFindSearch\Backend\Primo\Response\RecordCollectionFactory; +use VuFindSearch\ParamBag; +use VuFindSearch\Query\Query; +use PHPUnit_Framework_TestCase; +use InvalidArgumentException; + +/** + * Unit tests for Primo backend. + * + * @category VuFind2 + * @package Search + * @author Demian Katz <demian.katz@villanova.edu> + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License + * @link http://vufind.org + */ +class BackendTest extends \VuFindTest\Unit\TestCase +{ + /** + * Test retrieving a record. + * + * @return void + */ + public function testRetrieve() + { + $conn = $this->getConnectorMock(array('getRecord')); + $conn->expects($this->once()) + ->method('getRecord') + ->will($this->returnValue($this->loadResponse('retrieve'))); + + $back = new Backend($conn); + $back->setIdentifier('test'); + + $coll = $back->retrieve('crossref10.5755/j01.ss.71.1.377'); + $this->assertCount(1, $coll); + $this->assertEquals('test', $coll->getSourceIdentifier()); + $rec = $coll->first(); + $this->assertEquals('test', $rec->getSourceIdentifier()); + $this->assertEquals('crossref10.5755/j01.ss.71.1.377', $rec->recordid); + } + + /** + * Test performing a search. + * + * @return void + */ + public function testSearch() + { + $conn = $this->getConnectorMock(array('query')); + $conn->expects($this->once()) + ->method('query') + ->will($this->returnValue($this->loadResponse('search'))); + + $back = new Backend($conn); + $back->setIdentifier('test'); + + $coll = $back->search(new Query('Test, Test', 'Author'), 0, 3); + $this->assertCount(3, $coll); + $this->assertEquals('test', $coll->getSourceIdentifier()); + $rec = $coll->first(); + $this->assertEquals('test', $rec->getSourceIdentifier()); + $this->assertEquals('crossref10.5755/j01.ss.71.1.377', $rec->recordid); + $recs = $coll->getRecords(); + $this->assertEquals('test', $recs[1]->getSourceIdentifier()); + $this->assertEquals('crossref10.5755/j01.ss.71.2.533', $recs[1]->recordid); + $this->assertEquals('test', $recs[2]->getSourceIdentifier()); + $this->assertEquals('crossref10.5755/j01.ss.71.2.544', $recs[2]->recordid); + $this->assertEquals(5706, $coll->getTotal()); + $facets = $coll->getFacets(); + $this->assertEquals(9, count($facets)); + $this->assertEquals(19, count($facets['jtitle'])); + $this->assertEquals(16, $facets['jtitle']['Remedial and Special Education']); + $this->assertEquals(0, $coll->getOffset()); + } + + /** + * Test setting a query builder. + * + * @return void + */ + public function testSetQueryBuilder() + { + $qb = new \VuFindSearch\Backend\Primo\QueryBuilder(); + $back = new Backend($this->getConnectorMock()); + $back->setQueryBuilder($qb); + $this->assertEquals($qb, $back->getQueryBuilder()); + } + + /** + * Test setting a custom record collection factory. + * + * @return void + */ + public function testConstructorSetters() + { + $fact = $this->getMock('VuFindSearch\Response\RecordCollectionFactoryInterface'); + $conn = $this->getConnectorMock(); + $back = new Backend($conn, $fact); + $this->assertEquals($fact, $back->getRecordCollectionFactory()); + } + + /// Internal API + + /** + * Load a WorldCat response as fixture. + * + * @param string $fixture Fixture file + * + * @return mixed + * + * @throws InvalidArgumentException Fixture files does not exist + */ + protected function loadResponse($fixture) + { + $file = realpath(sprintf('%s/primo/response/%s', PHPUNIT_SEARCH_FIXTURES, $fixture)); + if (!is_string($file) || !file_exists($file) || !is_readable($file)) { + throw new InvalidArgumentException(sprintf('Unable to load fixture file: %s', $fixture)); + } + return unserialize(file_get_contents($file)); + } + + /** + * Return connector mock. + * + * @param array $mock Functions to mock + * + * @return array + */ + protected function getConnectorMock(array $mock = array()) + { + $client = $this->getMock('Zend\Http\Client'); + return $this->getMock( + 'VuFindSearch\Backend\Primo\Connector', $mock, + array('api-id', 'inst-id', $client) + ); + } +}