Permalink
Browse files

Indlæsning af metadata

  • Loading branch information...
1 parent 8ced9e5 commit 6c1e0aed4a4d631d809379ddf74e17f62f39bd23 @mwl mwl committed May 22, 2012
@@ -258,7 +258,43 @@ private DateTime nullableDateTime(XMLGregorianCalendar xmlDate) {
@Override
@Transactional
public IndlaesMetadataResponse indlaesMetadata(IndlaesMetadataRequest request, SoapHeader soapHeader) {
- return null;
+ if (request.getArbejdsfunktioner() != null) {
+ for (final Arbejdsfunktioner.Arbejdsfunktion jaxbArbejdsfunktion : request.getArbejdsfunktioner().getArbejdsfunktion()) {
+ logger.info("Adding arbejdsfunktion=" + jaxbArbejdsfunktion);
+ arbejdsfunktionDao.save(new Arbejdsfunktion() {{
+ this.setArbejdsfunktion(jaxbArbejdsfunktion.getArbejdsfunktion());
+ this.setBeskrivelse(jaxbArbejdsfunktion.getBeskrivelse());
+ this.setDomaene(domaeneDao.findByKode(jaxbArbejdsfunktion.getDomaene()));
+ this.setLinkedSystem(linkedSystemDao.findBySystem(jaxbArbejdsfunktion.getSystem()));
+ }});
+ }
+ }
+
+ if (request.getRettigheder() != null) {
+ for (final Rettigheder.Rettighed jaxbRettighed : request.getRettigheder().getRettighed()) {
+ logger.info("Adding rettighed=" + jaxbRettighed.toString());
+ rettighedDao.save(new Rettighed() {{
+ this.setRettighedskode(jaxbRettighed.getRettighed());
+ this.setBeskrivelse(jaxbRettighed.getBeskrivelse());
+ this.setDomaene(domaeneDao.findByKode(jaxbRettighed.getDomaene()));
+ this.setLinkedSystem(linkedSystemDao.findBySystem(jaxbRettighed.getSystem()));
+ }});
+ }
+ }
+
+ if (request.getDelegerbarRettigheder() != null) {
+ for (final DelegerbarRettigheder.DelegerbarRettighed jaxbDelegerbarRettighed : request.getDelegerbarRettigheder().getDelegerbarRettighed()) {
+ logger.info("Adding delegerbarRettighed=" + jaxbDelegerbarRettighed.toString());
+ delegerbarRettighedDao.save(new DelegerbarRettighed() {{
+ this.setArbejdsfunktion(arbejdsfunktionDao.findByArbejdsfunktion(jaxbDelegerbarRettighed.getArbejdsfunktion()));
+ this.setKode(jaxbDelegerbarRettighed.getRettighed());
+ this.setSystem(linkedSystemDao.findBySystem(jaxbDelegerbarRettighed.getSystem()));
+ this.setDomaene(domaeneDao.findByKode(jaxbDelegerbarRettighed.getDomaene()));
+ }});
+ }
+ }
+
+ return new IndlaesMetadataResponse();
}
@Override
@@ -52,6 +52,7 @@
final String bemyndigedeCvrText = "BemyndigedeCvr";
final String arbejdsfunktionKode = "Arbejdsfunktion";
final String rettighedKode = "Rettighedskode";
+ final String domaeneKode = "DomaeneKode";
final String systemKode = "SystemKode";
final String statusKode = "StatusKode";
@@ -410,6 +411,128 @@ public void canGetMetadata() throws Exception {
assertEquals(jaxbDelegerbarRettigheder, metadata.getDelegerbarRettigheder());
}
+ @Test
+ public void canIndlaeseArbejdsfunktioner() throws Exception {
+ final IndlaesMetadataRequest request = new IndlaesMetadataRequest() {{
+ this.setArbejdsfunktioner(new Arbejdsfunktioner() {{
+ getArbejdsfunktion().add(new Arbejdsfunktion() {{
+ this.setArbejdsfunktion("Arbejdsfunktion");
+ this.setBeskrivelse("Beskrivelse");
+ this.setDomaene(domaeneKode);
+ this.setSystem(systemKode);
+ }});
+ }});
+ }};
+
+ final Domaene domaene = new Domaene();
+ final LinkedSystem linkedSystem = new LinkedSystem();
+ when(domaeneDao.findByKode(domaeneKode)).thenReturn(domaene);
+ when(linkedSystemDao.findBySystem(systemKode)).thenReturn(linkedSystem);
+
+ assertNotNull(service.indlaesMetadata(request, soapHeader));
+
+ verify(arbejdsfunktionDao).save(argThat(new TypeSafeMatcher<Arbejdsfunktion>() {
+ @Override
+ public boolean matchesSafely(Arbejdsfunktion item) {
+ return allTrue(
+ item.getArbejdsfunktion().equals("Arbejdsfunktion"),
+ item.getBeskrivelse().equals("Beskrivelse"),
+ item.getDomaene() == domaene,
+ item.getLinkedSystem() == linkedSystem
+ );
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ }
+ }));
+ }
+
+ @Test
+ public void canIndlaeseRettigheder() throws Exception {
+ final IndlaesMetadataRequest request = new IndlaesMetadataRequest() {{
+ this.setRettigheder(new Rettigheder() {{
+ getRettighed().add(new Rettighed() {{
+ this.setBeskrivelse("Beskrivelse");
+ this.setDomaene(domaeneKode);
+ this.setSystem(systemKode);
+ this.setRettighed("Rettighed");
+ }});
+ }});
+ }};
+
+ final Domaene domaene = new Domaene();
+ final LinkedSystem linkedSystem = new LinkedSystem();
+ when(domaeneDao.findByKode(domaeneKode)).thenReturn(domaene);
+ when(linkedSystemDao.findBySystem(systemKode)).thenReturn(linkedSystem);
+
+ assertNotNull(service.indlaesMetadata(request, soapHeader));
+
+ verify(rettighedDao).save(argThat(new TypeSafeMatcher<Rettighed>() {
+ @Override
+ public boolean matchesSafely(Rettighed item) {
+ return allTrue(
+ item.getBeskrivelse().equals("Beskrivelse"),
+ item.getDomaene() == domaene,
+ item.getLinkedSystem() == linkedSystem,
+ item.getRettighedskode().equals("Rettighed")
+ );
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ }
+ }));
+ }
+
+ @Test
+ public void canIndlaeseDelegeredeRettigheder() throws Exception {
+ final IndlaesMetadataRequest request = new IndlaesMetadataRequest() {{
+ this.setDelegerbarRettigheder(new DelegerbarRettigheder() {{
+ getDelegerbarRettighed().add(new DelegerbarRettighed() {{
+ this.setArbejdsfunktion("Arbejdsfunktion");
+ this.setDomaene(domaeneKode);
+ this.setRettighed("Rettighed");
+ this.setSystem(systemKode);
+ }});
+ }});
+ }};
+
+ final Domaene domaene = new Domaene();
+ final LinkedSystem linkedSystem = new LinkedSystem();
+ final Arbejdsfunktion arbejdsfunktion = new Arbejdsfunktion();
+ when(domaeneDao.findByKode(domaeneKode)).thenReturn(domaene);
+ when(linkedSystemDao.findBySystem(systemKode)).thenReturn(linkedSystem);
+ when(arbejdsfunktionDao.findByArbejdsfunktion("Arbejdsfunktion")).thenReturn(arbejdsfunktion);
+
+ assertNotNull(service.indlaesMetadata(request, soapHeader));
+
+ verify(delegerbarRettighedDao).save(argThat(new TypeSafeMatcher<DelegerbarRettighed>() {
+ @Override
+ public boolean matchesSafely(DelegerbarRettighed item) {
+ return allTrue(
+ item.getArbejdsfunktion() == arbejdsfunktion,
+ item.getDomaene() == domaene,
+ item.getKode().equals("Rettighed"),
+ item.getSystem() == linkedSystem
+ );
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ }
+ }));
+ }
+
+ @Test
+ public void willAllowEmptyIndlaesMetadata() throws Exception {
+ assertNotNull(service.indlaesMetadata(new IndlaesMetadataRequest(), soapHeader));
+
+ verifyZeroInteractions(arbejdsfunktionDao);
+ verifyZeroInteractions(rettighedDao);
+ verifyZeroInteractions(delegerbarRettighedDao);
+ }
+
public boolean allTrue(boolean... eval) {
int a = 0;
for (boolean b : eval) {

0 comments on commit 6c1e0ae

Please sign in to comment.