From a4182fc2e4b4537e66d90dc17fbb9520001ac125 Mon Sep 17 00:00:00 2001 From: "fabio.sinibaldi" Date: Tue, 19 Mar 2019 18:04:36 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-publishing/gCat-Feeder-Suite@178632 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../model/CatalogueInstanceDescriptor.java | 18 +++- .../catalogues/gCat/GCatController.java | 2 +- .../catalogues/gCat/Interactions.java | 92 +++++++++++++++++- gCat-Controller/src/test/resources/full.json | 0 .../src/test/resources/missingProfile.json | 0 .../src/test/resources/noItem.json | 0 .../src/test/resources/onlyItem.json | 0 .../catalogues/gCat/GCatController.class | Bin 12961 -> 12996 bytes gCat-Controller/target/test-classes/full.json | 0 .../target/test-classes/missingProfile.json | 0 .../target/test-classes/noItem.json | 0 .../target/test-classes/onlyItem.json | 0 .../Interactions$CustomTargetFormat.class | Bin 0 -> 1361 bytes .../catalogues/gCat/Interactions.class | Bin 624 -> 3777 bytes 14 files changed, 105 insertions(+), 7 deletions(-) create mode 100644 gCat-Controller/src/test/resources/full.json create mode 100644 gCat-Controller/src/test/resources/missingProfile.json create mode 100644 gCat-Controller/src/test/resources/noItem.json create mode 100644 gCat-Controller/src/test/resources/onlyItem.json create mode 100644 gCat-Controller/target/test-classes/full.json create mode 100644 gCat-Controller/target/test-classes/missingProfile.json create mode 100644 gCat-Controller/target/test-classes/noItem.json create mode 100644 gCat-Controller/target/test-classes/onlyItem.json create mode 100644 gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions$CustomTargetFormat.class diff --git a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/CatalogueInstanceDescriptor.java b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/CatalogueInstanceDescriptor.java index c08f111..da6a9b2 100644 --- a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/CatalogueInstanceDescriptor.java +++ b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/CatalogueInstanceDescriptor.java @@ -12,15 +12,16 @@ public class CatalogueInstanceDescriptor { private HashMap headersParameters=new HashMap<>(); - public CatalogueInstanceDescriptor(String url) { + public CatalogueInstanceDescriptor() { super(); - this.url = url; } public String getUrl() { return url; } + + public String getUser() { return user; } @@ -57,4 +58,17 @@ public class CatalogueInstanceDescriptor { return this; } + public CatalogueInstanceDescriptor setUrl(String url) { + this.url = url; + return this; + } + + @Override + public String toString() { + return "CatalogueInstanceDescriptor [url=" + url + ", user=" + user + ", password=" + password + + ", customToken=" + customToken + ", headersParameters=" + headersParameters + "]"; + } + + + } diff --git a/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatController.java b/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatController.java index 2bcf672..42026e7 100644 --- a/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatController.java +++ b/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatController.java @@ -61,7 +61,7 @@ public class GCatController implements CatalogueController{ try { builder= factory.newDocumentBuilder(); - expr= xpath.compile(""); + expr= xpath.compile("string(/bookstore/book/title/@lang)"); } catch (ParserConfigurationException | XPathExpressionException e) { throw new RuntimeException("Unable to initialize Controller"); } diff --git a/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java b/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java index 047fe55..b2a10e7 100644 --- a/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java +++ b/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java @@ -1,15 +1,99 @@ package org.gcube.data.publishing.gCatFeeder.catalogues.gCat; +import java.nio.file.Files; +import java.nio.file.Paths; + +import org.gcube.data.publishing.gCatFeeder.catalogues.CatalogueController; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.PublishReport; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.CatalogueInteractionException; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.ControllerInstantiationFault; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.PublicationException; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.WrongObjectFormatException; +import org.gcube.data.publishing.gCatFeeder.model.CatalogueFormatData; +import org.gcube.data.publishing.gCatFeeder.model.CatalogueInstanceDescriptor; import org.gcube.data.publishing.gCatFeeder.tests.TokenSetter; -import org.gcube.data.publishing.gCatFeeder.utils.TokenUtils; +import org.gcube.data.publishing.gCataFeeder.catalogues.gCat.GCatPlugin; +import org.junit.Assert; import org.junit.Before; +import org.junit.Test; + public class Interactions { - @Before - private void setToken() { - TokenSetter.set("/gcube/devsec"); + private static class CustomTargetFormat implements CatalogueFormatData{ + + private String fileName; + + public CustomTargetFormat(String fileName) { + super(); + this.fileName = fileName; + } + + @Override + public String toCatalogueFormat() { + try { + return new String(Files.readAllBytes(Paths.get(fileName))); + }catch(Exception e) { + throw new RuntimeException("Unable to read file "+fileName); + } + } } + @Before + public void setToken() { + TokenSetter.set("/gcube/preprod/preVRE"); + } + + + + public CatalogueController getController() throws ControllerInstantiationFault { + GCatPlugin plugin=new GCatPlugin(); + return plugin.instantiateController(new CatalogueInstanceDescriptor()); + } + + + + @Test(expected=ControllerInstantiationFault.class) + public void testFailInstance() throws ControllerInstantiationFault { + GCatPlugin plugin=new GCatPlugin(); + plugin.instantiateController(new CatalogueInstanceDescriptor().setUrl("http://no.where.com")); + } + + + @Test + public void duplicates() { + try { + publish(getController(),"full.json"); + publish(getController(),"full.json"); + }catch(Exception e) { + Assert.fail(e.getMessage()); + } + } + + + @Test(expected=PublicationException.class) + public void missingProfile() throws CatalogueInteractionException, WrongObjectFormatException, PublicationException, ControllerInstantiationFault { + publish(getController(),"missingProfile.json"); + } + + + @Test(expected=WrongObjectFormatException.class) + public void noitem() throws CatalogueInteractionException, WrongObjectFormatException, PublicationException, ControllerInstantiationFault { + publish(getController(),"noItem.json"); + } + + @Test + public void item() { + try { + publish(getController(),"onlyItem.json"); + } catch (WrongObjectFormatException | PublicationException | ControllerInstantiationFault e) { + Assert.fail(e.getMessage()); + } + } + + + private static PublishReport publish(CatalogueController controller, String filename) throws CatalogueInteractionException, WrongObjectFormatException, PublicationException { + return controller.publishItem(new CustomTargetFormat(filename)); + } } diff --git a/gCat-Controller/src/test/resources/full.json b/gCat-Controller/src/test/resources/full.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/src/test/resources/missingProfile.json b/gCat-Controller/src/test/resources/missingProfile.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/src/test/resources/noItem.json b/gCat-Controller/src/test/resources/noItem.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/src/test/resources/onlyItem.json b/gCat-Controller/src/test/resources/onlyItem.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/target/classes/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatController.class b/gCat-Controller/target/classes/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatController.class index 0f0bba127202ec80970e231d18338fb98ff488ba..132f1ebc97aeafaa3147674ed0541c6041461f01 100644 GIT binary patch delta 49 zcmZ3OdL(s&FRO}jaY<2TUb=>UQht7RaY=qrDww5Tl39|Is_&4Kn3t}(*^f0?7XaJ+ B5-I=y delta 14 VcmX?-x-fNvFDoO%=0etBT>vYy1l#}s diff --git a/gCat-Controller/target/test-classes/full.json b/gCat-Controller/target/test-classes/full.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/target/test-classes/missingProfile.json b/gCat-Controller/target/test-classes/missingProfile.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/target/test-classes/noItem.json b/gCat-Controller/target/test-classes/noItem.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/target/test-classes/onlyItem.json b/gCat-Controller/target/test-classes/onlyItem.json new file mode 100644 index 0000000..e69de29 diff --git a/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions$CustomTargetFormat.class b/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions$CustomTargetFormat.class new file mode 100644 index 0000000000000000000000000000000000000000..b0bbf406c7e3efccd25ea992709f6237c4342bab GIT binary patch literal 1361 zcmbtUT~8B16g^W43+n>%Sp>u?pluOW5fv?>wAzHEq7iIDc$#jl!mcWYB!|NF^)+M6AVLjm0a61m2~DyE_VY1 zmoY`H)5sXoXDGGP&eNnm1(eni$2ARC+h}scMKsfxVK98bOKXmk`5*;JHrC`jjg;KU z=!oIEn#v7^&cse8S*r|Fws=vzW5O13z8_7+sNmoQ27y6Y%=$(|L`vr<}6i4W(r)n@#b6?T_x&F-n z-TP=SFo`I+uLn~Yq-eD9HHI)u5$&s^l0X=tTm$nX@hQy3L&UaIU(nz29kBykI>410 zWm9nYdduOcVADxo!4D4U5ehVwk`~q-p00 a?d<|17cLY3BZ?we#bbJ^ZW*2+1N{$x?_%Tt literal 0 HcmV?d00001 diff --git a/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.class b/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.class index 1f0bc3e1eb74341604e9b41d4d45ababfb0d39ef..5027aec8e66af5157591e302645513de8951270b 100644 GIT binary patch literal 3777 zcmb_f-BuG<7~Kbv36lsKg`&0ow6;ZPNn7oYMo|nzX#*mOP!!t^lS3Gs%w)|>T3vmB zUiJ-o+uM4BwyxC&=tFgNpP4ZkFiMbKkTWyqoNw=Me?RB&&%b~D4d5ai4Lt%=u2;*| z%;uWRRgJ*NHJWR-iUKz{}Y(I+rivK%?ztglJ0VyxLxAX{=x z!(K8xOTEV*dxH(j7bukWO*Ai%@?}tQA4*5y_+rxuth!vXe2ZvPj^hSK=uk+6s%$pN zKX*f}yPnLakQEq;m1=mh;knfu$EC#?9mg=NVMySMt~dtL5Byw6qbvgonZa8ap-v=6 zjL}kC%W~i`5_zTHp_&W|t`m5!ZA(w!=IHr7OTvIgVQd?sDEiDJQ#RsQz9X>Gl^2PW zs57#5Zry0w^s8-p*6{;_8i%SD)vSio0@q(}-grgI-6Z)1yIHdw9jDN*;a!2^>rKU$ zB6=;~BU+}MmcHp(jllJEoJGH~`hEr<;6uj1YEhSMe*}IV?N0Jt5%d37?D`s^Bmy^f zVYa)h%!I=#HH(I2ztD)ELc38ZR5+`ONIq(?!ev$9{w}C5$Fl2OVa4SHj&1}&<8m(N zxD!8ZNKa0fZe4}z(+obt1vVMh%w5kGSnX6c-Lcy}TC9<3vte7zdFkt5p=WR$CsO!I zpntt-+Y_6<%e)l0oIxH}1hlx13jEe(&Lrxom8$LB%XerB-FcU=8#%fVb@)ZuaJ?X} zV-nXjT%*+Ow$o||8BE~@y=U*4lfG}%*rkuL@wAu59ZJVEiW+8^Fsde_e3|ln=>-|w zRNbw2op~i7XkjR^zXip_I#dn}^WmJ)h+F?a-SU0*zXi`-w`{3lPT*cwCI6DsFPhVf z2ADX&S`0MY7Fgbw{bkQ}YS976-c&b&gz-B9clKpG3>-bh?yHp|`nLjU$DJikjM}R(Q@GC@aUJ_{YevHZfy!Q0RTrCW zSD15!rXRTVis3QQqrmA{#rNu_GLnV?Q^OkXAbSNO&d&2TgDO}8>9{{APXvDHvPbOb zR1wo@g1o_b(y1A+(#^ybV`k4G?%=RGFjVzAMxB0V6Qv)w4uY25rf13`R|y26ImK}l=R;OwWPBij zp}40xGtR${Op;R$EXANFc7kRnw(tp&m)lMagj(haeT4_z)dc*B7JRk^e{q{&5za*?Gz10BCE(3XjVmjaO^o&SH_>> ryFc+m589a>RiBZ-8pJwk+`>)RfW?6HV3Th>cnF)Lx?8RCuMYh`(L(;w delta 133 zcmX>o`+Zd1{CZ+19q?Q$@CUY@}Fo>};h%z#mO%za_ z+{9=$c`}zg4}&5DBLg!~7Xt&+